* thread.cc (MTinterface::fixup_after_fork): Remove code which potentially
overwrote _impure pointer with contents of thread which invoked fork since this eliminates important information like the pointer to the atexit queue.
This commit is contained in:
		| @@ -1,3 +1,10 @@ | ||||
| 2003-09-12  Christopher Faylor  <cgf@redhat.com> | ||||
|  | ||||
| 	* thread.cc (MTinterface::fixup_after_fork): Remove code which | ||||
| 	potentially overwrote _impure pointer with contents of thread which | ||||
| 	invoked fork since this eliminates important information like the | ||||
| 	pointer to the atexit queue. | ||||
|  | ||||
| 2003-09-12  Christopher Faylor  <cgf@redhat.com> | ||||
|  | ||||
| 	* fhandler_disk_file.cc (path_conv::ndisk_links): Fix problem where | ||||
|   | ||||
| @@ -224,10 +224,6 @@ MTinterface::fixup_after_fork (void) | ||||
|   /* As long as the signal handling not multithreaded | ||||
|      switch reents storage back to _impure_ptr for the mainthread | ||||
|      to support fork from threads other than the mainthread */ | ||||
|   struct _reent *reent_old = __getreent (); | ||||
|  | ||||
|   if (reent_old && _impure_ptr != reent_old) | ||||
|     *_impure_ptr = *reent_old; | ||||
|   reents._clib = _impure_ptr; | ||||
|   reents._winsup = &winsup_reent; | ||||
|   winsup_reent._process_logmask = LOG_UPTO (LOG_DEBUG); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user