* init.cc (dll_entry): Previous code reversion was ill-advised. Revert it.
* sigproc.cc (child_info::sync): Ditto. * pinfo.cc (_pinfo::exit): Don't set myself.procinfo to NULL since it is no longer required.
This commit is contained in:
		| @@ -1,3 +1,11 @@ | ||||
| 2004-12-26  Christopher Faylor  <cgf@timesys.com> | ||||
|  | ||||
| 	* init.cc (dll_entry): Previous code reversion was ill-advised.  Revert | ||||
| 	it. | ||||
| 	* sigproc.cc (child_info::sync): Ditto. | ||||
| 	* pinfo.cc (_pinfo::exit): Don't set myself.procinfo to NULL since it | ||||
| 	is no longer required. | ||||
|  | ||||
| 2004-12-26  Christopher Faylor  <cgf@timesys.com> | ||||
|  | ||||
| 	* init.cc (dll_entry): Remove exit code setting. | ||||
|   | ||||
| @@ -13,6 +13,7 @@ details. */ | ||||
| #include "thread.h" | ||||
| #include "perprocess.h" | ||||
| #include "cygtls.h" | ||||
| #include "pinfo.h" | ||||
|  | ||||
| int NO_COPY dynamically_loaded; | ||||
| static char *search_for = (char *) cygthread::stub; | ||||
| @@ -126,6 +127,8 @@ dll_entry (HANDLE h, DWORD reason, void *static_load) | ||||
|       dll_crt0_0 (); | ||||
|       break; | ||||
|     case DLL_PROCESS_DETACH: | ||||
|       if (myself && myself->exitcode == EXITCODE_UNSET) | ||||
| 	myself->exitcode = 1 << 8; | ||||
|       break; | ||||
|     case DLL_THREAD_ATTACH: | ||||
|       munge_threadfunc (); | ||||
|   | ||||
| @@ -132,7 +132,6 @@ _pinfo::exit (UINT n, bool norecord) | ||||
|   sigproc_printf ("Calling ExitProcess %d", n); | ||||
|   _my_tls.stacklock = 0; | ||||
|   _my_tls.stackptr = _my_tls.stack; | ||||
|   myself.procinfo = NULL;	// This breaks the abstraction a little doesn't it? | ||||
|   ExitProcess (exitcode); | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -798,6 +798,13 @@ child_info::sync (pinfo& vchild, DWORD howlong) | ||||
|     case WAIT_OBJECT_0 + 1: | ||||
|       if (WaitForSingleObject (subproc_ready, 0) == WAIT_OBJECT_0) | ||||
| 	sigproc_printf ("should never happen.  noticed subproc_ready after process exit"); | ||||
|       else | ||||
| 	{ | ||||
| 	  DWORD exitcode = 0; | ||||
| 	  (void) GetExitCodeProcess (vchild.hProcess, &exitcode); | ||||
| 	  vchild->exitcode = (exitcode & 0xff) << 8; | ||||
| 	  sigproc_printf ("non-cygwin exit value is %p", exitcode); | ||||
| 	} | ||||
|       res = false; | ||||
|       break; | ||||
|     default: | ||||
|   | ||||
		Reference in New Issue
	
	Block a user