35 typedef struct as_queue_mt_s {
56 #define AS_QUEUE_FOREVER -1
57 #define AS_QUEUE_NOWAIT 0
64 #define as_queue_mt_inita(__q, __item_size, __capacity)\
65 as_queue_inita(&(__q)->queue, __item_size, __capacity);\
66 pthread_mutex_init(&(__q)->lock, NULL);\
67 pthread_cond_init(&(__q)->cond, NULL);
91 pthread_cond_destroy(&queue->
cond);
92 pthread_mutex_destroy(&queue->
lock);
99 static inline uint32_t
102 pthread_mutex_lock(&queue->
lock);
104 pthread_mutex_unlock(&queue->
lock);
114 pthread_mutex_lock(&queue->
lock);
116 pthread_mutex_unlock(&queue->
lock);
126 pthread_mutex_lock(&queue->
lock);
130 pthread_cond_signal(&queue->
cond);
132 pthread_mutex_unlock(&queue->
lock);
142 pthread_mutex_lock(&queue->
lock);
146 pthread_cond_signal(&queue->
cond);
148 pthread_mutex_unlock(&queue->
lock);
158 pthread_mutex_lock(&queue->
lock);
162 pthread_cond_signal(&queue->
cond);
164 pthread_mutex_unlock(&queue->
lock);
174 pthread_mutex_lock(&queue->
lock);
178 pthread_cond_signal(&queue->
cond);
180 pthread_mutex_unlock(&queue->
lock);
static uint32_t as_queue_mt_size(as_queue_mt *queue)
AS_EXTERN bool as_queue_mt_pop(as_queue_mt *queue, void *ptr, int wait_ms)
AS_EXTERN bool as_queue_mt_pop_tail(as_queue_mt *queue, void *ptr, int wait_ms)
AS_EXTERN as_queue_mt * as_queue_mt_create(uint32_t item_size, uint32_t capacity)
AS_EXTERN bool as_queue_push_head(as_queue *queue, const void *ptr)
AS_EXTERN bool as_queue_push(as_queue *queue, const void *ptr)
static bool as_queue_mt_push_limit(as_queue_mt *queue, const void *ptr)
static bool as_queue_mt_push_head(as_queue_mt *queue, const void *ptr)
static uint32_t as_queue_size(as_queue *queue)
AS_EXTERN bool as_queue_push_head_limit(as_queue *queue, const void *ptr)
static void as_queue_mt_destroy(as_queue_mt *queue)
AS_EXTERN bool as_queue_push_limit(as_queue *queue, const void *ptr)
static bool as_queue_mt_push_head_limit(as_queue_mt *queue, const void *ptr)
static bool as_queue_mt_push(as_queue_mt *queue, const void *ptr)
static bool as_queue_empty(as_queue *queue)
AS_EXTERN void as_queue_destroy(as_queue *queue)
AS_EXTERN bool as_queue_mt_init(as_queue_mt *queue, uint32_t item_size, uint32_t capacity)
static bool as_queue_mt_empty(as_queue_mt *queue)