diff --git a/winpr/libwinpr/utils/collections/MessageQueue.c b/winpr/libwinpr/utils/collections/MessageQueue.c index d288c544f..d787f8ff3 100644 --- a/winpr/libwinpr/utils/collections/MessageQueue.c +++ b/winpr/libwinpr/utils/collections/MessageQueue.c @@ -100,12 +100,13 @@ BOOL MessageQueue_Dispatch(wMessageQueue* queue, wMessage* message) } CopyMemory(&(queue->array[queue->tail]), message, sizeof(wMessage)); - queue->tail = (queue->tail + 1) % queue->capacity; - queue->size++; message = &(queue->array[queue->tail]); message->time = GetTickCount64(); + queue->tail = (queue->tail + 1) % queue->capacity; + queue->size++; + if (queue->size > 0) SetEvent(queue->event);