summaryrefslogtreecommitdiff
path: root/include/queue.h
diff options
context:
space:
mode:
authorsinanmohd <sinan@sinanmohd.com>2024-06-14 12:18:40 +0530
committersinanmohd <sinan@sinanmohd.com>2024-06-14 18:53:40 +0530
commit58fe7d147774960e3fb7dbc53a3e5ecf106ebf01 (patch)
tree0b8651b5a69666605125c05ee18ee68bd13308e1 /include/queue.h
parent6627adcbc2d2ade8db1fd2ed26e03d37b53fde62 (diff)
build: init
Diffstat (limited to 'include/queue.h')
-rw-r--r--include/queue.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/include/queue.h b/include/queue.h
index ca11614..5f2d5f4 100644
--- a/include/queue.h
+++ b/include/queue.h
@@ -1,10 +1,20 @@
#include <pthread.h>
#include <sys/queue.h>
+#include <semaphore.h>
#include "jobs.h"
+#ifndef QUEUE_H
+
+typedef enum {
+ Q_ITS_OVER = 0,
+ Q_SEM_WAIT = 1,
+} queue_state_t;
+
struct queue {
struct job_clist jobs;
+ sem_t sem;
+ queue_state_t state;
pthread_mutex_t mutex;
};
@@ -17,3 +27,7 @@ struct queue_thread {
int queue_thread_new(struct queue_thread **queue_thread, FILE *stream);
void queue_thread_free(struct queue_thread *queue_thread);
void *queue_thread_entry(void *queue_thread);
+int queue_pop(struct queue *queue, struct job **job);
+
+#define QUEUE_H
+#endif