#include "queue.h" #include #include #include #include #define MAX_NUMS 100000 void* producer(void* arg) { queue_t* queue = (queue_t*)arg; size_t i = 0; for(i = 0; i < MAX_NUMS; ++i) { queue_add(queue, i); } return NULL; } void* consumer(void* arg) { queue_t* queue = (queue_t*)arg; size_t i = 0; for(i = 0; i < MAX_NUMS; ++i) { printf("got %d from producer\n", queue_pop(queue)); } return NULL; } int main(int argc, char* argv[]) { pthread_t prod_thr, cons_thr; pthread_cond_t valid_root; pthread_mutex_t mx_cond; queue_t myqueue; queue_init(&myqueue); pthread_create(&cons_thr, NULL, producer, &myqueue); pthread_create(&prod_thr, NULL, consumer, &myqueue); pthread_exit(0x0); queue_clear(&myqueue); return 0; }