diff options
Diffstat (limited to 'lib/mqueue.c')
-rw-r--r-- | lib/mqueue.c | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/lib/mqueue.c b/lib/mqueue.c index 7156e31e..de1d654c 100644 --- a/lib/mqueue.c +++ b/lib/mqueue.c @@ -708,7 +708,7 @@ mqueue_done_waiting(mqueue_queue mq, mqueue_thread_signal mtsig) } ; /*------------------------------------------------------------------------------ - * Enqueue message on local queue + * Enqueue message on local queue -- at tail */ extern void mqueue_local_enqueue(mqueue_local_queue lmq, mqueue_block mqb) @@ -722,6 +722,19 @@ mqueue_local_enqueue(mqueue_local_queue lmq, mqueue_block mqb) } ; /*------------------------------------------------------------------------------ + * Enqueue message on local queue -- at head + */ +extern void +mqueue_local_enqueue_head(mqueue_local_queue lmq, mqueue_block mqb) +{ + if (lmq->head == NULL) + lmq->tail = mqb ; + + mqb->next = lmq->head ; + lmq->head = mqb ; +} ; + +/*------------------------------------------------------------------------------ * Dequeue message from local queue -- returns NULL if empty */ extern mqueue_block |