[PATCH 2/6] server: Always clear pending messages in sock_wake_up().
Zebediah Figura
z.figura12 at gmail.com
Thu May 13 22:54:36 CDT 2021
Instead of clearing all messages when any match.
Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
---
dlls/ws2_32/tests/sock.c | 2 +-
server/sock.c | 5 ++---
2 files changed, 3 insertions(+), 4 deletions(-)
diff --git a/dlls/ws2_32/tests/sock.c b/dlls/ws2_32/tests/sock.c
index 9116c2b169d..33cdd5d6d15 100644
--- a/dlls/ws2_32/tests/sock.c
+++ b/dlls/ws2_32/tests/sock.c
@@ -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);
}
diff --git a/server/sock.c b/server/sock.c
index 92202d317c4..340566cbb0a 100644
--- a/server/sock.c
+++ b/server/sock.c
@@ -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)
{
--
2.30.2
More information about the wine-devel
mailing list