예제 #1
0
파일: RingQueue.c 프로젝트: 899/swoole
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;
}
예제 #2
0
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;
}
예제 #3
0
static PHP_METHOD(swoole_ringqueue, isFull)
{
    swRingQueue *queue = swoole_get_object(getThis());
    RETURN_BOOL(swRingQueue_full(queue));
}