Alexandre Julliard : server: Don' t set the idle event when a queue is destroyed, instead return success in WaitForInputIdle on process exit.

Alexandre Julliard julliard at winehq.org
Thu Dec 17 10:37:06 CST 2009


Module: wine
Branch: master
Commit: d1dc48d8dc3b492935ca41f67593a59310abe919
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=d1dc48d8dc3b492935ca41f67593a59310abe919

Author: Alexandre Julliard <julliard at 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;




More information about the wine-cvs mailing list