typedef struct _queue_element { void *content; struct _queue_element *next; } queue_element; typedef struct { queue_element *head, *tail; unsigned nb_values; } queue; queue *queue_new(void); void queue_free(queue *); int queue_send(queue *, void *); void *queue_receive(queue *); void *queue_front(queue *); unsigned queue_size(queue *); int queue_is_empty(queue *);