b3f69208ce
- Remove debug printf calls from file.c - Remove dead code: chunk_print, chunk_format, chunk_data_create/delete - Remove unused config.use_single_send_per_file field - Fix server_delete() no-op (double-pointer) - Fix double cast (long)(long) -> ptrdiff_t in chunk.c - Fix thread return value: thrd_error instead of 1 - Remove unused config param from receive_chunk_enqueue() - Make queue_double_capacity() static - Move SSH dest parsing into config.c as config_parse_ssh_dest() - Fix test_config_ssh_dest to test parsing round-trip - Remove chunk_format test (obsolete format) - Replace chunk_data_delete with data_destroy in tests
31 lines
944 B
C
31 lines
944 B
C
#ifndef QUEUE_H
|
|
#define QUEUE_H
|
|
|
|
#include <stdbool.h>
|
|
#include <threads.h>
|
|
|
|
typedef struct Queue {
|
|
void **items;
|
|
int front;
|
|
int rear;
|
|
int size;
|
|
int capacity;
|
|
void (*item_destroyer)(void *item);
|
|
} Queue;
|
|
|
|
Queue *queue_create(int capacity, void (*destroyer)(void *item));
|
|
void queue_destroy(Queue *queue);
|
|
bool queue_is_empty(Queue *queue);
|
|
bool queue_is_full(Queue *queue);
|
|
void queue_enqueue(Queue *queue, void *item);
|
|
void queue_enqueue_multithreaded(Queue *queue, void *item, mtx_t *mutex,
|
|
cnd_t *condition_not_empty,
|
|
cnd_t *condition_not_full);
|
|
void *queue_dequeue(Queue *queue);
|
|
void *queue_dequeue_multithreaded(Queue *queue, mtx_t *mutex,
|
|
cnd_t *condition_not_empty,
|
|
cnd_t *condition_not_full,
|
|
bool *other_thread_done);
|
|
|
|
#endif
|