server: Always clear pending messages in sock_wake_up().

Instead of clearing all messages when any match.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Zebediah Figura 2021-05-13 22:54:36 -05:00 committed by Alexandre Julliard
parent aa6b2482cc
commit 21efebbdc1
2 changed files with 3 additions and 4 deletions

View File

@ -4553,7 +4553,7 @@ static void test_close_events(struct event_test_ctx *ctx)
check_events(ctx, 0, 0, 200);
select_events(ctx, server, FD_ACCEPT | FD_CLOSE | FD_CONNECT | FD_OOB | FD_READ);
check_events_todo(ctx, FD_CLOSE, 0, 200);
check_events_todo_event(ctx, FD_CLOSE, 0, 200);
closesocket(server);
}

View File

@ -400,12 +400,11 @@ static void sock_wake_up( struct sock *sock )
unsigned int events = sock->pending_events & sock->mask;
int i;
if ( !events ) return;
if (sock->event)
{
if (debug_level) fprintf(stderr, "signalling events %x ptr %p\n", events, sock->event );
set_event( sock->event );
if (events)
set_event( sock->event );
}
if (sock->window)
{