summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2011-07-28 09:45:15 +0200
committerStefan Metzmacher <metze@samba.org>2011-08-09 21:37:41 +0200
commitaba9d48f55b7e69af0967d0f435843c833357ec7 (patch)
tree8609d3f96c11e62e8f7a305755f5f24694a232b2
parent3c38ec72e74dd60b81964ebf661f5d5af8724968 (diff)
downloadsamba-aba9d48f55b7e69af0967d0f435843c833357ec7.tar.gz
samba-aba9d48f55b7e69af0967d0f435843c833357ec7.tar.bz2
samba-aba9d48f55b7e69af0967d0f435843c833357ec7.zip
tevent: allow tevent_queue_add() to take a NULL trigger function
This way the caller can add a blocker to the queue. metze
-rw-r--r--lib/tevent/tevent.h4
-rw-r--r--lib/tevent/tevent_queue.c7
2 files changed, 10 insertions, 1 deletions
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);