aboutsummaryrefslogtreecommitdiffstats
path: root/src/libcharon/sa/task_manager.h
diff options
context:
space:
mode:
authorThomas Egerer <thomas.egerer@secunet.com>2014-01-16 13:24:08 +0100
committerMartin Willi <martin@revosec.ch>2014-01-16 14:16:13 +0100
commitb190899473354a5783e15b7b0056be89916667db (patch)
tree6818ae9de26f55e158216b2bc49715dbe4b41e87 /src/libcharon/sa/task_manager.h
parent800b361e19dc271956c40826e7e917ce0ff507ef (diff)
downloadstrongswan-b190899473354a5783e15b7b0056be89916667db.tar.bz2
strongswan-b190899473354a5783e15b7b0056be89916667db.tar.xz
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 <thomas.egerer@secunet.com>
Diffstat (limited to 'src/libcharon/sa/task_manager.h')
-rw-r--r--src/libcharon/sa/task_manager.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/libcharon/sa/task_manager.h b/src/libcharon/sa/task_manager.h
index a1ebb4117..e7a6bf463 100644
--- a/src/libcharon/sa/task_manager.h
+++ b/src/libcharon/sa/task_manager.h
@@ -261,6 +261,11 @@ struct task_manager_t {
task_queue_t queue);
/**
+ * Flush all tasks, regardless of the queue.
+ */
+ void (*flush)(task_manager_t *this);
+
+ /**
* Flush a queue, cancelling all tasks.
*
* @param queue queue to flush