Example #1
0
int TestQueue(int argc, char* argv[])
{
    int item;
    int index;
    int count;
    wQueue* queue;

    queue = Queue_New(TRUE, -1, -1);

    for (index = 1; index <= 10; index++)
    {
        Queue_Enqueue(queue, (void*) (size_t) index);
    }

    count = Queue_Count(queue);

    printf("queue count: %d\n", count);

    for (index = 1; index <= 10; index++)
    {
        item = (int) (size_t) Queue_Dequeue(queue);

        if (item != index)
            return -1;
    }

    Queue_Clear(queue);
    Queue_Free(queue);

    return 0;
}
Example #2
0
void Queue_Free(wQueue* queue)
{
	Queue_Clear(queue);

	CloseHandle(queue->event);
	DeleteCriticalSection(&queue->lock);
	free(queue->array);
	free(queue);
}
Example #3
0
static void pbrpc_reconnect(pbRPCContext* context)
{
	pbRPCTransaction* ta = NULL;
	context->isConnected = FALSE;

	tp_npipe_close(context);
	Queue_Clear(context->writeQueue);

	while ((ta = ListDictionary_Remove_Head(context->transactions)))
	{
		ta->responseCallback(PBRCP_TRANSPORT_ERROR, 0, ta->callbackArg);

		if (ta->freeAfterResponse)
			free(ta);
	}

	pbrpc_connect(context);
}