35typedef struct as_queue_mt_s {
35typedef 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)\
65as_queue_inita(&(__q)->queue, __item_size, __capacity);\
66pthread_mutex_init(&(__q)->lock, NULL);\
67pthread_cond_init(&(__q)->cond, NULL);
64#define as_queue_mt_inita(__q, __item_size, __capacity)\ …
91 pthread_cond_destroy(&queue->
cond);
92 pthread_mutex_destroy(&queue->
lock);
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);
AS_EXTERN bool as_queue_push_limit(as_queue *queue, const void *ptr)
AS_EXTERN bool as_queue_push_head(as_queue *queue, const void *ptr)
AS_EXTERN void as_queue_destroy(as_queue *queue)
static bool as_queue_empty(as_queue *queue)
AS_EXTERN bool as_queue_push_head_limit(as_queue *queue, const void *ptr)
static uint32_t as_queue_size(as_queue *queue)
AS_EXTERN bool as_queue_push(as_queue *queue, const void *ptr)
static bool as_queue_mt_push_head_limit(as_queue_mt *queue, const void *ptr)
AS_EXTERN bool as_queue_mt_pop_tail(as_queue_mt *queue, void *ptr, int wait_ms)
static uint32_t as_queue_mt_size(as_queue_mt *queue)
static bool as_queue_mt_empty(as_queue_mt *queue)
AS_EXTERN bool as_queue_mt_pop(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)
static bool as_queue_mt_push_limit(as_queue_mt *queue, const void *ptr)
AS_EXTERN bool as_queue_mt_init(as_queue_mt *queue, uint32_t item_size, uint32_t capacity)
static void as_queue_mt_destroy(as_queue_mt *queue)
static bool as_queue_mt_push_head(as_queue_mt *queue, const void *ptr)
static bool as_queue_mt_push(as_queue_mt *queue, const void *ptr)