Signed-off-by: Jacek Caban jacek@codeweavers.com ---
This is a resend on top of recent git.
I think the series is good to have on its own, but, to give more context, it's also a preparation for improving CPU context transfers between client and server. With my WIP patches, select can optionally send and receive a context, eliminating need for separated get_suspend_context and set_suspend_context and reducing SIGUSR1 handling overhead. We can also change exception event handling to use the same mechanism, leading to nice server simplification.
The above is not strictly needed for other changes, but server simplification makes them much easier. I changed context to be a server object, so that get_thread_context can use proper wait instead of polling for suspend. This reliably fixes bug 48052 and probably bug 45546 (at least in cases when it's really Wine bug).
dlls/ntdll/server.c | 34 ++++++++++++++++++++++++---------- dlls/ntdll/thread.c | 10 +++++----- server/async.c | 10 +++++----- server/protocol.def | 6 ++++++ server/timer.c | 8 ++++---- server/trace.c | 12 ++++++------ 6 files changed, 50 insertions(+), 30 deletions(-)