From aba9d48f55b7e69af0967d0f435843c833357ec7 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Thu, 28 Jul 2011 09:45:15 +0200 Subject: tevent: allow tevent_queue_add() to take a NULL trigger function This way the caller can add a blocker to the queue. metze --- lib/tevent/tevent.h | 4 +++- lib/tevent/tevent_queue.c | 7 +++++++ 2 files changed, 10 insertions(+), 1 deletion(-) (limited to 'lib') diff --git a/lib/tevent/tevent.h b/lib/tevent/tevent.h index 3b170a4dc8..c96ca354f5 100644 --- a/lib/tevent/tevent.h +++ b/lib/tevent/tevent.h @@ -1395,7 +1395,9 @@ typedef void (*tevent_queue_trigger_fn_t)(struct tevent_req *req, * @param[in] req The tevent request to add to the queue. * * @param[in] trigger The function triggered by the queue when the request - * is called. + * is called. Since tevent 0.9.14 it's possible to + * pass NULL, in order to just add a "blocker" to the + * queue. * * @param[in] private_data The private data passed to the trigger function. * diff --git a/lib/tevent/tevent_queue.c b/lib/tevent/tevent_queue.c index 446804c9a5..3fca7fb948 100644 --- a/lib/tevent/tevent_queue.c +++ b/lib/tevent/tevent_queue.c @@ -163,6 +163,13 @@ bool tevent_queue_add(struct tevent_queue *queue, e->trigger = trigger; e->private_data = private_data; + /* + * if there is no trigger, it is just a blocker + */ + if (trigger == NULL) { + e->triggered = true; + } + DLIST_ADD_END(queue->list, e, struct tevent_queue_entry *); queue->length++; talloc_set_destructor(e, tevent_queue_entry_destructor); -- cgit