Skip to content

Commit

Permalink
fsm: Add ni_fsm_purge_children() on worker destroy
Browse files Browse the repository at this point in the history
  • Loading branch information
wipawel committed Jun 26, 2014
1 parent c7ae272 commit 4d3d7da
Showing 1 changed file with 8 additions and 1 deletion.
9 changes: 8 additions & 1 deletion src/fsm.c
Original file line number Diff line number Diff line change
Expand Up @@ -2118,6 +2118,13 @@ ni_fsm_reset_matching_workers(ni_fsm_t *fsm, ni_ifworker_array_t *marked,
}
}

static inline void
ni_fsm_purge_children(ni_fsm_t *fsm, ni_ifworker_t *w)
{
if (w->exclusive_owner)
ni_ifworker_array_remove(&w->exclusive_owner->children, w);
}

ni_bool_t
ni_fsm_destroy_worker(ni_fsm_t *fsm, ni_ifworker_t *w)
{
Expand All @@ -2136,8 +2143,8 @@ ni_fsm_destroy_worker(ni_fsm_t *fsm, ni_ifworker_t *w)

if (ni_ifworker_active(w))
ni_ifworker_fail(w, "device was deleted");
w->dead = TRUE;

ni_fsm_purge_children(fsm, w);
ni_ifworker_release(w);
return TRUE;
}
Expand Down

0 comments on commit 4d3d7da

Please sign in to comment.