server: Do not signal accept bits if there are accept asyncs queued.

Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Zebediah Figura 2022-05-05 00:43:30 -05:00 committed by Alexandre Julliard
parent bff228c198
commit 753fbb28d5
3 changed files with 4 additions and 3 deletions

View File

@ -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);

View File

@ -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);

View File

@ -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;
}
}