int swRingQueue_push(swRingQueue * p_queue, void *push_data) { if (swRingQueue_full(p_queue)) { swTrace("queue full\n"); return -1; } p_queue->data[p_queue->tail] = push_data; p_queue->tail = (p_queue->tail + 1) % p_queue->size; /* 这个时候一定队列满了*/ if (p_queue->tail == p_queue->head) { p_queue->tag = 1; } return p_queue->tag; }
int swRingQueue_push(swRingQueue *queue, void *push_data) { if (swRingQueue_full(queue)) { swTrace("queue full\n"); return -1; } queue->data[queue->tail] = push_data; queue->tail = (queue->tail + 1) % queue->size; /* 这个时候一定队列满了*/ if (queue->tail == queue->head) { queue->tag = 1; } return queue->tag; }
static PHP_METHOD(swoole_ringqueue, isFull) { swRingQueue *queue = swoole_get_object(getThis()); RETURN_BOOL(swRingQueue_full(queue)); }