From add3c9f6d8464c29d729606fbf0e3311ec759e20 Mon Sep 17 00:00:00 2001 From: sinanmohd Date: Wed, 12 Jun 2024 21:18:28 +0530 Subject: src/queue: init --- include/jobs.h | 5 ++++- include/queue.h | 19 +++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 include/queue.h (limited to 'include') diff --git a/include/jobs.h b/include/jobs.h index 41bfa57..be95c57 100644 --- a/include/jobs.h +++ b/include/jobs.h @@ -8,15 +8,18 @@ struct output { }; LIST_HEAD(job_dlist, job); +CIRCLEQ_HEAD(job_clist, job); struct job { char *name, *drv_path; struct output_dlist outputs; struct job_dlist deps; + /* TODO: replace dlist with clist jobs.c */ LIST_ENTRY(job) dlist; + CIRCLEQ_ENTRY(job) clist; }; int jobs_init(FILE **stream); int job_new(struct job **j, char *name, char *drv_path); void job_free(struct job *j); -int jobs_read(FILE *stream, struct job *jobs); +int job_read(FILE *stream, struct job **jobs); diff --git a/include/queue.h b/include/queue.h new file mode 100644 index 0000000..ca11614 --- /dev/null +++ b/include/queue.h @@ -0,0 +1,19 @@ +#include +#include + +#include "jobs.h" + +struct queue { + struct job_clist jobs; + pthread_mutex_t mutex; +}; + +struct queue_thread { + pthread_t tid; + struct queue *queue; + FILE *stream; +}; + +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); -- cgit v1.2.3