ntdll: Process system APCs while the signals are blocked.
commit544fd9504a6b8c646c09d314c1539e4e7b6fb946
authorRémi Bernon <rbernon@codeweavers.com>
Wed, 5 Feb 2020 10:49:40 +0000 (5 11:49 +0100)
committerAlexandre Julliard <julliard@winehq.org>
Wed, 5 Feb 2020 20:28:26 +0000 (5 21:28 +0100)
tree7082f4ee00fdd30a2b7ecc794e639d0511ec9e15
parent2dc99bfb308393f95d6d9896e030646012beddf6
ntdll: Process system APCs while the signals are blocked.

This makes sure that system APC, such as APC_BREAK_PROCESS do not get
interrupted in the middle of their execution, and that the APC
completion notification is always correctly sent back to the caller.

Otherwise DbgBreakProcess sometimes did not return until
WaitForDebugEvent/ContinueDebugEvent are called, because of a race
condition between the APC servicing thread, and the newly created
exception thread.

Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
dlls/ntdll/server.c
dlls/ntdll/sync.c