ike_sa: Defer task manager destruction after child destruction

This patch exports the task manager's flush to allow flushing of all
queues with one function call from ike_sa->destroy. It allows the
access of intact children during task destructoin (see git-commit
e44ebdcf) and allows the access of the task manager in
child_state_change hook.

Signed-off-by: Thomas Egerer <[email protected]>
This commit is contained in:
Thomas Egerer
2014-01-16 14:16:13 +01:00
committed by Martin Willi
parent 800b361e19
commit b190899473
4 changed files with 16 additions and 9 deletions
+3 -4
View File
@@ -339,10 +339,8 @@ METHOD(task_manager_t, flush_queue, void,
}
}
/**
* flush all tasks in the task manager
*/
static void flush(private_task_manager_t *this)
METHOD(task_manager_t, flush, void,
private_task_manager_t *this)
{
flush_queue(this, TASK_QUEUE_QUEUED);
flush_queue(this, TASK_QUEUE_PASSIVE);
@@ -2070,6 +2068,7 @@ task_manager_v1_t *task_manager_v1_create(ike_sa_t *ike_sa)
.adopt_child_tasks = _adopt_child_tasks,
.busy = _busy,
.create_task_enumerator = _create_task_enumerator,
.flush = _flush,
.flush_queue = _flush_queue,
.destroy = _destroy,
},