diff options
Diffstat (limited to 'tests/fsm/fsm_dealloc_test.c')
-rw-r--r-- | tests/fsm/fsm_dealloc_test.c | 54 |
1 files changed, 3 insertions, 51 deletions
diff --git a/tests/fsm/fsm_dealloc_test.c b/tests/fsm/fsm_dealloc_test.c index f8d2b1ee..ce492056 100644 --- a/tests/fsm/fsm_dealloc_test.c +++ b/tests/fsm/fsm_dealloc_test.c @@ -22,7 +22,6 @@ static const struct value_string test_fsm_event_names[] = { enum state { ST_ALIVE, - ST_DESTROYING, }; enum objname { @@ -148,52 +147,19 @@ void alive(struct osmo_fsm_inst *fi, uint32_t event, void *data) case EV_OTHER_GONE: if (other_gone(obj, data)) { /* Something this object depends on is gone, trigger deallocation */ - osmo_fsm_inst_state_chg(fi, ST_DESTROYING, 0, 0); + osmo_fsm_inst_term(fi, OSMO_FSM_TERM_REGULAR, 0); } break; case EV_CHILD_GONE: if (!child_gone(obj, data)) { /* All children are gone. Deallocate. */ - osmo_fsm_inst_state_chg(fi, ST_DESTROYING, 0, 0); + osmo_fsm_inst_term(fi, OSMO_FSM_TERM_REGULAR, 0); } break; case EV_DESTROY: - osmo_fsm_inst_state_chg(fi, ST_DESTROYING, 0, 0); - break; - - default: - OSMO_ASSERT(false); - } - PUT(); -} - -void destroying_onenter(struct osmo_fsm_inst *fi, uint32_t prev_state) -{ - struct obj *obj = fi->priv; - GET(); - LOGPFSML(fi, LOGL_DEBUG, "%s() from %s\n", __func__, osmo_fsm_state_name(fi->fsm, prev_state)); - osmo_fsm_inst_term(fi, OSMO_FSM_TERM_REGULAR, 0); - PUT(); -} - -void destroying(struct osmo_fsm_inst *fi, uint32_t event, void *data) -{ - struct obj *obj = fi->priv; - GET(); - LOGPFSML(fi, LOGL_DEBUG, "%s(%s)\n", __func__, osmo_fsm_event_name(fi->fsm, event)); - switch (event) { - case EV_OTHER_GONE: - other_gone(obj, data); - break; - - case EV_CHILD_GONE: - child_gone(obj, data); - break; - - case EV_DESTROY: - LOGPFSML(fi, LOGL_DEBUG, "already destroying\n"); + osmo_fsm_inst_term(fi, OSMO_FSM_TERM_REGULAR, 0); break; default: @@ -214,24 +180,10 @@ static const struct osmo_fsm_state test_fsm_states[] = { , .out_state_mask = 0 | S(ST_ALIVE) - | S(ST_DESTROYING) , .onenter = alive_onenter, .action = alive, }, - [ST_DESTROYING] = { - .name = "destroying", - .in_event_mask = 0 - | S(EV_CHILD_GONE) - | S(EV_OTHER_GONE) - | S(EV_DESTROY) - , - .out_state_mask = 0 - | S(ST_DESTROYING) - , - .onenter = destroying_onenter, - .action = destroying, - }, }; void cleanup(struct osmo_fsm_inst *fi, enum osmo_fsm_term_cause cause) |