Module: wine Branch: refs/heads/master Commit: 0a3646292a120c8cd67826858df43b27830866ca URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=0a3646292a120c8cd6782685...
Author: Alexandre Julliard julliard@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