Alexandre Julliard : server: Fixed process exit code on FreeBSD.

Alexandre Julliard julliard at wine.codeweavers.com
Mon Mar 27 05:29:12 CST 2006


Module: wine
Branch: refs/heads/master
Commit: 0a3646292a120c8cd67826858df43b27830866ca
URL:    http://source.winehq.org/git/?p=wine.git;a=commit;h=0a3646292a120c8cd67826858df43b27830866ca

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Mon Mar 27 12:14:24 2006 +0200

server: Fixed process exit code on FreeBSD.

---

 server/process.c |    2 +-
 server/request.c |   11 +++++++----
 2 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/server/process.c b/server/process.c
index 393a65a..c119ed1 100644
--- a/server/process.c
+++ b/server/process.c
@@ -660,7 +660,7 @@ void kill_process( struct process *proce
     {
         struct thread *thread = LIST_ENTRY( ptr, struct thread, proc_entry );
 
-        thread->exit_code = exit_code;
+        if (exit_code) thread->exit_code = exit_code;
         if (thread != skip) kill_thread( thread, 1 );
     }
 }
diff --git a/server/request.c b/server/request.c
index 7eb1f83..6f0ffb9 100644
--- a/server/request.c
+++ b/server/request.c
@@ -389,11 +389,14 @@ int receive_fd( struct process *process 
         return 0;
     }
 
-    if (ret >= 0)
+    if (!ret)
+    {
+        kill_process( process, NULL, 0 );
+    }
+    else if (ret > 0)
     {
-        if (ret > 0)
-            fprintf( stderr, "Protocol error: process %p: partial recvmsg %d for fd\n",
-                     process, ret );
+        fprintf( stderr, "Protocol error: process %p: partial recvmsg %d for fd\n",
+                 process, ret );
         kill_process( process, NULL, 1 );
     }
     else




More information about the wine-cvs mailing list