diff options
author | sinanmohd <sinan@sinanmohd.com> | 2024-06-22 23:48:45 +0530 |
---|---|---|
committer | sinanmohd <sinan@sinanmohd.com> | 2024-06-23 01:59:49 +0530 |
commit | 4740b89e88dff04361da7f7f3bd9e823fd75d5b2 (patch) | |
tree | b5cf30095adc7dcd12ed9a0d9d83671f04efaf43 /include | |
parent | 49b1faa9c128b9beb8f517bed5cccfc5cb3b0ef0 (diff) |
htab: init
Diffstat (limited to 'include')
-rw-r--r-- | include/htab.h | 18 | ||||
-rw-r--r-- | include/jobs.h | 3 | ||||
-rw-r--r-- | include/queue.h | 5 |
3 files changed, 23 insertions, 3 deletions
diff --git a/include/htab.h b/include/htab.h new file mode 100644 index 0000000..70a0893 --- /dev/null +++ b/include/htab.h @@ -0,0 +1,18 @@ +#include <search.h> + +#ifndef HTAB_H + +struct htab { + struct hsearch_data *table; + char **keys; + size_t keys_size, key_filled; +}; + +void htab_free(struct htab *htab); +int htab_init(struct htab **htab); +int htab_delete(struct htab *htab, const char *key); +int htab_enter(struct htab *htab, const char *key, void *data); +int htab_search(struct htab *htab, char *key, ENTRY **ep); + +#define HTAB_H +#endif diff --git a/include/jobs.h b/include/jobs.h index 623eaea..d4916f7 100644 --- a/include/jobs.h +++ b/include/jobs.h @@ -1,5 +1,5 @@ -#include <stdio.h> #include <stdbool.h> +#include <stdio.h> #include <sys/queue.h> #ifndef JOBS_H @@ -36,6 +36,7 @@ int job_read(FILE *stream, struct job **jobs); int jobs_init(FILE **stream); void job_free(struct job *j); int job_parents_list_insert(struct job *job, struct job *parent); +void job_deps_list_rm(struct job *job, struct job *dep); #define JOBS_H #endif diff --git a/include/queue.h b/include/queue.h index c454339..4aca54b 100644 --- a/include/queue.h +++ b/include/queue.h @@ -3,6 +3,7 @@ #include <semaphore.h> #include <sys/queue.h> +#include "htab.h" #include "jobs.h" #ifndef QUEUE_H @@ -14,7 +15,7 @@ typedef enum { struct queue { struct job_clist jobs; - struct hsearch_data *htab; + struct htab *htab; sem_t sem; queue_state_t state; pthread_mutex_t mutex; @@ -29,7 +30,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, struct hsearch_data *htab); +int queue_pop(struct queue *queue, struct job **job, struct htab *htab); #define QUEUE_H #endif |