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; }
void Queue_Free(wQueue* queue) { Queue_Clear(queue); CloseHandle(queue->event); DeleteCriticalSection(&queue->lock); free(queue->array); free(queue); }
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); }