[PATCH 6/6] server: Do not signal accept bits if there are accept asyncs queued.
Zebediah Figura
zfigura at codeweavers.com
Thu May 5 00:43:30 CDT 2022
Signed-off-by: Zebediah Figura <zfigura at codeweavers.com>
---
dlls/ws2_32/tests/afd.c | 2 +-
dlls/ws2_32/tests/sock.c | 4 ++--
server/sock.c | 1 +
3 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/dlls/ws2_32/tests/afd.c b/dlls/ws2_32/tests/afd.c
index 2ace83f5e21..5b64ccd7715 100644
--- a/dlls/ws2_32/tests/afd.c
+++ b/dlls/ws2_32/tests/afd.c
@@ -722,7 +722,7 @@ static void test_poll(void)
ok(!size, "got size %lu\n", size);
ret = WaitForSingleObject(event, 0);
- todo_wine ok(ret == WAIT_TIMEOUT, "got %#x\n", ret);
+ ok(ret == WAIT_TIMEOUT, "got %#x\n", ret);
closesocket(server);
closesocket(client);
diff --git a/dlls/ws2_32/tests/sock.c b/dlls/ws2_32/tests/sock.c
index 99221ad52ca..6e2e49c9178 100644
--- a/dlls/ws2_32/tests/sock.c
+++ b/dlls/ws2_32/tests/sock.c
@@ -5578,7 +5578,7 @@ static void test_accept_events(struct event_test_ctx *ctx)
ok(ret, "got error %lu\n", GetLastError());
ok(!size, "got size %lu\n", size);
- check_events_todo(ctx, 0, 0, 0);
+ check_events(ctx, 0, 0, 0);
closesocket(server);
closesocket(client);
@@ -5587,7 +5587,7 @@ static void test_accept_events(struct event_test_ctx *ctx)
ret = connect(client, (struct sockaddr *)&destaddr, sizeof(destaddr));
ok(!ret, "got error %u\n", WSAGetLastError());
- check_events_todo(ctx, FD_ACCEPT, 0, 200);
+ check_events(ctx, FD_ACCEPT, 0, 200);
check_events(ctx, 0, 0, 0);
server = accept(listener, NULL, NULL);
diff --git a/server/sock.c b/server/sock.c
index aa62a03d699..e46be9349e2 100644
--- a/server/sock.c
+++ b/server/sock.c
@@ -990,6 +990,7 @@ static int sock_dispatch_asyncs( struct sock *sock, int event, int error )
if (req->iosb->status == STATUS_PENDING && !req->accepted)
{
complete_async_accept( sock, req );
+ event &= ~POLLIN;
break;
}
}
--
2.34.1
More information about the wine-devel
mailing list