Lines Matching refs:aq
42 void array_queue_destroy(array_queue * aq) in array_queue_destroy() argument
44 assert(aq); in array_queue_destroy()
46 free(aq->buf); in array_queue_destroy()
47 pthread_mutex_destroy(&aq->mutex); in array_queue_destroy()
48 free(aq); in array_queue_destroy()
51 int array_queue_push(array_queue * aq, void * item) in array_queue_push() argument
55 pthread_mutex_lock(&aq->mutex); in array_queue_push()
57 if(aq->buf[aq->writePos % aq->num] == NULL) in array_queue_push()
59 aq->buf[aq->writePos % aq->num] = item; in array_queue_push()
60 aq->writePos = (aq->writePos + 1) % aq->num; in array_queue_push()
64 pthread_mutex_unlock(&aq->mutex); in array_queue_push()
68 void* array_queue_pop(array_queue * aq) in array_queue_pop() argument
70 pthread_mutex_lock(&aq->mutex); in array_queue_pop()
71 void * value = aq->buf[aq->readPos % aq->num]; in array_queue_pop()
74 aq->buf[aq->readPos % aq->num] = NULL; in array_queue_pop()
75 aq->readPos = (aq->readPos + 1) % aq->num; in array_queue_pop()
77 pthread_mutex_unlock(&aq->mutex); in array_queue_pop()
81 size_t array_queue_get_size(array_queue * aq) in array_queue_get_size() argument
83 pthread_mutex_lock(&aq->mutex); in array_queue_get_size()
84 ssize_t r = aq->writePos - aq->readPos; in array_queue_get_size()
86 r = aq->num + r; in array_queue_get_size()
89 pthread_mutex_unlock(&aq->mutex); in array_queue_get_size()