65 #include "gw-config.h"    87     int (*
cmp)(
const void*, 
const void *);
   108     if (
size >= new_size)
   112     queue->size = new_size;
   159     while (index <= queue->len / 2) {
   180     ret = gw_malloc(
sizeof(*ret));
   182     pthread_cond_init(&ret->
nonempty, NULL);
   192     ret->
tab[0] = gw_malloc(
sizeof(**ret->
tab));
   311         queue->mutex->owner = -1;
   312         pthread_cleanup_push((
void(*)(
void*))pthread_mutex_unlock, &
queue->mutex->mutex);
   314         pthread_cleanup_pop(0);
   360     ret = 
queue->producers;
 
gw_assert(wtls_machine->packet_to_send !=NULL)
 
int(* cmp)(const void *, const void *)
 
static void make_bigger(gw_prioqueue_t *queue, long items)
 
static void downheap(gw_prioqueue_t *queue, register long index)
 
void gw_prioqueue_foreach(gw_prioqueue_t *queue, void(*fn)(const void *, long))
 
void * gw_prioqueue_consume(gw_prioqueue_t *queue)
 
void * gw_prioqueue_get(gw_prioqueue_t *queue)
 
void gw_prioqueue_insert(gw_prioqueue_t *queue, void *item)
 
static void queue_lock(gw_prioqueue_t *queue)
 
void * gw_prioqueue_remove(gw_prioqueue_t *queue)
 
long gw_prioqueue_len(gw_prioqueue_t *queue)
 
gw_prioqueue_t * gw_prioqueue_create(int(*cmp)(const void *, const void *))
 
void mutex_destroy(Mutex *mutex)
 
void gw_prioqueue_destroy(gw_prioqueue_t *queue, void(*item_destroy)(void *))
 
void gw_prioqueue_remove_producer(gw_prioqueue_t *queue)
 
static int compare(struct element *a, struct element *b, int(*cmp)(const void *, const void *))
 
static void upheap(gw_prioqueue_t *queue, register long index)
 
static void item_destroy(void *item)
 
static void queue_unlock(gw_prioqueue_t *queue)
 
long gw_prioqueue_producer_count(gw_prioqueue_t *queue)
 
void gw_prioqueue_add_producer(gw_prioqueue_t *queue)