Commit 8a33dd43 authored by Sebastian Lackner's avatar Sebastian Lackner Committed by Alexandre Julliard

ntdll: Do not check if object was signaled after user APC in server_select.

parent 49dd5577
......@@ -2317,20 +2317,16 @@ static DWORD WINAPI alertable_wait_thread(void *param)
ReleaseSemaphore(semaphores[0], 1, NULL);
result = WaitForMultipleObjectsEx(1, &semaphores[1], TRUE, 1000, TRUE);
todo_wine
ok(result == WAIT_IO_COMPLETION, "expected WAIT_IO_COMPLETION, got %u\n", result);
result = WaitForMultipleObjectsEx(1, &semaphores[1], TRUE, 200, TRUE);
todo_wine
ok(result == WAIT_OBJECT_0, "expected WAIT_OBJECT_0, got %u\n", result);
ReleaseSemaphore(semaphores[0], 1, NULL);
timeout.QuadPart = -10000000;
status = pNtWaitForMultipleObjects(1, &semaphores[1], FALSE, TRUE, &timeout);
todo_wine
ok(status == STATUS_USER_APC, "expected STATUS_USER_APC, got %08x\n", status);
timeout.QuadPart = -2000000;
status = pNtWaitForMultipleObjects(1, &semaphores[1], FALSE, TRUE, &timeout);
todo_wine
ok(status == STATUS_WAIT_0, "expected STATUS_WAIT_0, got %08x\n", status);
ReleaseSemaphore(semaphores[0], 1, NULL);
......
......@@ -614,10 +614,11 @@ unsigned int server_select( const select_op_t *select_op, data_size_t size, UINT
if (ret != STATUS_USER_APC) break;
if (invoke_apc( &call, &result ))
{
/* if we ran a user apc we have to check once more if an object got signaled,
/* if we ran a user apc we have to check once more if additional apcs are queued,
* but we don't want to wait */
abs_timeout = 0;
user_apc = TRUE;
size = 0;
}
/* don't signal multiple times */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment