From 3cb155a97f98f2f7e9e68b6c536b9bb3777e33d8 Mon Sep 17 00:00:00 2001 From: Corinna Vinschen Date: Tue, 7 Feb 2006 09:57:43 +0000 Subject: [PATCH] * init.cc (respawn_wow64_process): Exit with the exit code returned by the respawned process. --- winsup/cygwin/ChangeLog | 5 +++++ winsup/cygwin/init.cc | 5 ++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index fe83089da..f5c38fdd6 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,8 @@ +2006-02-07 Corinna Vinschen + + * init.cc (respawn_wow64_process): Exit with the exit code returned + by the respawned process. + 2006-02-06 Christopher Faylor Always zero all elements of siginfo_t throughout. diff --git a/winsup/cygwin/init.cc b/winsup/cygwin/init.cc index 0f1827a63..5a4d5690b 100644 --- a/winsup/cygwin/init.cc +++ b/winsup/cygwin/init.cc @@ -122,6 +122,8 @@ respawn_wow64_process () { PROCESS_INFORMATION pi; STARTUPINFO si; + DWORD ret = 0; + GetStartupInfo (&si); if (!CreateProcessA (NULL, GetCommandLineA (), NULL, NULL, TRUE, CREATE_DEFAULT_ERROR_MODE @@ -131,8 +133,9 @@ respawn_wow64_process () CloseHandle (pi.hThread); if (WaitForSingleObject (pi.hProcess, INFINITE) == WAIT_FAILED) api_fatal ("Waiting for process %d failed, %E", pi.dwProcessId); + GetExitCodeProcess (pi.hProcess, &ret); CloseHandle (pi.hProcess); - ExitProcess (0); + ExitProcess (ret); } }