3
#include <winpr/thread.h>
4
#include <winpr/collections.h>
6
static void* message_queue_consumer_thread(void* arg)
11
queue = (wMessageQueue*) arg;
13
while (MessageQueue_Wait(queue))
15
if (MessageQueue_Peek(queue, &message, TRUE))
17
if (message.id == WMQ_QUIT)
20
printf("Message.Type: %d\n", message.id);
27
int TestMessageQueue(int argc, char* argv[])
32
queue = MessageQueue_New();
34
thread = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE) message_queue_consumer_thread, (void*) queue, 0, NULL);
36
MessageQueue_Post(queue, NULL, 123, NULL, NULL);
37
MessageQueue_Post(queue, NULL, 456, NULL, NULL);
38
MessageQueue_Post(queue, NULL, 789, NULL, NULL);
39
MessageQueue_PostQuit(queue, 0);
41
WaitForSingleObject(thread, INFINITE);
43
MessageQueue_Free(queue);