lots of stuff
[assignments.git] / homework / assgn9 / queue.h
CommitLineData
165869e8 1#include <pthread.h>
2#pragma once
3
4typedef struct queue_node {
5 int value;
6 struct queue_node* next;
7} queue_node_t;
8
9typedef struct queue {
10 queue_node_t* root;
11 pthread_mutex_t *mx_push, *mx_pop, *mx_valid_root; /* critical funcs are per-instance */
12 pthread_cond_t *valid_root;
13} queue_t;
14
15void queue_init(queue_t* queue);
16void queue_clear(queue_t* queue);
17
18void queue_add(queue_t* queue, int value);
19int queue_pop(queue_t* queue);
20
21