]> git.lizzy.rs Git - dragonstd.git/blobdiff - queue.h
Implement queue_finish
[dragonstd.git] / queue.h
diff --git a/queue.h b/queue.h
index 80b1e5410cbd522e79762d2009fe22fd6b74c9e5..cfa72b8d9f06e9bb8188abaa30e6e49aae26d995 100644 (file)
--- a/queue.h
+++ b/queue.h
@@ -9,6 +9,7 @@
 typedef struct
 {
        atomic_bool cancel;
+       bool finish;
        List list;
        pthread_cond_t cv;
        pthread_mutex_t mtx;
@@ -19,6 +20,7 @@ void queue_delete(Queue *queue);
 void queue_enqueue(Queue *queue, void *elem);
 void *queue_dequeue(Queue *queue);
 void *queue_dequeue_callback(Queue *queue, void (*callback)(void *elem));
-void queue_cancel(Queue *queue);
+void queue_cancel(Queue *queue); // disallow dequeing
+void queue_finish(Queue *queue); // disallow enqueing, wait until consumption finished
 
 #endif