/* $Id: queue.h,v 1.1 2003/03/18 09:13:53 wafer Exp $ */ /* Task scheduler */ #ifndef _AMBUSH_QUEUE_INC_ #define _AMBUSH_QUEUE_INC_ #include #include "parse.h" typedef struct { func_t f; value_t argv[MAX_ARGS]; int argc; value_t *ret; } queue_el_t; #define N_Q_L 1000 typedef struct { queue_el_t *q[N_Q_L]; int n_l; int head, tail; pthread_mutex_t mut; pthread_cond_t not_full, not_empty; } queue_t; queue_el_t *queue_el_create (func_t, value_t *, int, value_t *); void queue_el_destroy (queue_el_t *); void queue_el_process (queue_el_t *); void queue_lock (); void queue_unlock (); #endif /* _AMBUSH_SCHED_INC_ */