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

Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Sebastian Lackner 2015-10-23 04:16:08 +02:00 committed by Alexandre Julliard
parent 49dd5577eb
commit 8a33dd43f6
2 changed files with 2 additions and 5 deletions

View File

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

View File

@ -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 */