Module: wine Branch: master Commit: d1dc48d8dc3b492935ca41f67593a59310abe919 URL: http://source.winehq.org/git/wine.git/?a=commit;h=d1dc48d8dc3b492935ca41f675...
Author: Alexandre Julliard julliard@winehq.org Date: Wed Dec 16 17:20:46 2009 +0100
server: Don't set the idle event when a queue is destroyed, instead return success in WaitForInputIdle on process exit.
---
dlls/user32/message.c | 2 +- server/process.c | 5 +++++ server/queue.c | 6 ------ 3 files changed, 6 insertions(+), 7 deletions(-)
diff --git a/dlls/user32/message.c b/dlls/user32/message.c index 8916cae..285a24c 100644 --- a/dlls/user32/message.c +++ b/dlls/user32/message.c @@ -3338,7 +3338,7 @@ DWORD WINAPI WaitForInputIdle( HANDLE hProcess, DWORD dwTimeOut ) switch (ret) { case WAIT_OBJECT_0: - return WAIT_FAILED; + return 0; case WAIT_OBJECT_0+2: process_sent_messages(); break; diff --git a/server/process.c b/server/process.c index 51193b7..8f47870 100644 --- a/server/process.c +++ b/server/process.c @@ -634,6 +634,11 @@ static void process_killed( struct process *process ) if (handles) release_object( handles ); process->winstation = 0; process->desktop = 0; + if (process->idle_event) + { + release_object( process->idle_event ); + process->idle_event = NULL; + }
/* close the console attached to this process, if any */ free_console( process ); diff --git a/server/queue.c b/server/queue.c index c5841c9..b7cbc64 100644 --- a/server/queue.c +++ b/server/queue.c @@ -298,12 +298,6 @@ void free_msg_queue( struct thread *thread ) { release_object( process->queue ); process->queue = NULL; - if (process->idle_event) - { - set_event( process->idle_event ); - release_object( process->idle_event ); - process->idle_event = NULL; - } } release_object( thread->queue ); thread->queue = NULL;