Author: fireball Date: Sat Nov 7 16:06:32 2009 New Revision: 43999
URL: http://svn.reactos.org/svn/reactos?rev=43999&view=rev Log: - Satisfy only one thread waiting on message queue at a time as expected by the original implementation.
Modified: branches/arwinss/reactos/subsystems/win32/win32k/wine/queue.c
Modified: branches/arwinss/reactos/subsystems/win32/win32k/wine/queue.c URL: http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/subsystems/win32... ============================================================================== --- branches/arwinss/reactos/subsystems/win32/win32k/wine/queue.c [iso-8859-1] (original) +++ branches/arwinss/reactos/subsystems/win32/win32k/wine/queue.c [iso-8859-1] Sat Nov 7 16:06:32 2009 @@ -253,7 +253,7 @@ if ((queue = alloc_object( &msg_queue_ops ))) { queue->fd = NULL; - ZwCreateEvent(&queue->wake_event, EVENT_ALL_ACCESS, NULL, NotificationEvent, FALSE); + ZwCreateEvent(&queue->wake_event, EVENT_ALL_ACCESS, NULL, SynchronizationEvent, FALSE); /* Get a pointer to the object itself */ ObReferenceObjectByHandle(queue->wake_event, EVENT_ALL_ACCESS, @@ -338,7 +338,7 @@ queue->changed_bits |= bits; if (is_signaled( queue )) { - KePulseEvent(queue->wake_event_ptr, EVENT_INCREMENT, FALSE); + KeSetEvent(queue->wake_event_ptr, EVENT_INCREMENT, FALSE); } }
@@ -914,7 +914,7 @@
if (event & (POLLERR | POLLHUP)) set_fd_events( fd, -1 ); else set_fd_events( queue->fd, 0 ); - KePulseEvent(queue->wake_event_ptr, EVENT_INCREMENT, FALSE); + KeSetEvent(queue->wake_event_ptr, EVENT_INCREMENT, FALSE); }
static void thread_input_dump( struct object *obj, int verbose ) @@ -1686,7 +1686,7 @@ } else { - KePulseEvent(queue->wake_event_ptr, EVENT_INCREMENT, FALSE); + KeSetEvent(queue->wake_event_ptr, EVENT_INCREMENT, FALSE); } } }