slight update
[rrq/rrqnet.git] / queue.h
1 #ifndef queue_H
2 #define queue_H
3
4 #include "sockaddr.h"
5 #include <semaphore.h>
6 #include <pthread.h>
7
8 typedef struct _QueueItem {
9     struct _QueueItem *next;
10     char data[];
11 } QueueItem;
12
13 typedef struct _Queue {
14     QueueItem *head;
15     QueueItem *last;
16     sem_t count;
17     pthread_mutex_t mutex;
18 } Queue;
19
20 extern void Queue_addItem(Queue *list,QueueItem *item);
21 extern QueueItem *Queue_getItem(Queue *list);
22 extern void Queue_initialize(Queue *list,int n,size_t size);
23
24 #endif
25