int swRingQueue_pop(swRingQueue * p_queue, void **pop_data) { if (swRingQueue_empty(p_queue)) { swTrace("queue empty\n"); return -1; } *pop_data = p_queue->data[p_queue->head]; p_queue->head = (p_queue->head + 1) % p_queue->size; /* 这个时候一定队列空了*/ if (p_queue->tail == p_queue->head) { p_queue->tag = 0; } return p_queue->tag; }
int swRingQueue_pop(swRingQueue *queue, void **pop_data) { if (swRingQueue_empty(queue)) { swTrace("queue empty\n"); return -1; } *pop_data = queue->data[queue->head]; queue->head = (queue->head + 1) % queue->size; /* 这个时候一定队列空了*/ if (queue->tail == queue->head) { queue->tag = 0; } return queue->tag; }
static PHP_METHOD(swoole_ringqueue, isEmpty) { swRingQueue *queue = swoole_get_object(getThis()); RETURN_BOOL(swRingQueue_empty(queue)); }