* 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:
parent
21d7ec1928
commit
b0309a1658
|
@ -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>
|
2003-09-12 Christopher Faylor <cgf@redhat.com>
|
||||||
|
|
||||||
* fhandler_disk_file.cc (path_conv::ndisk_links): Fix problem where
|
* 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
|
/* As long as the signal handling not multithreaded
|
||||||
switch reents storage back to _impure_ptr for the mainthread
|
switch reents storage back to _impure_ptr for the mainthread
|
||||||
to support fork from threads other than 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._clib = _impure_ptr;
|
||||||
reents._winsup = &winsup_reent;
|
reents._winsup = &winsup_reent;
|
||||||
winsup_reent._process_logmask = LOG_UPTO (LOG_DEBUG);
|
winsup_reent._process_logmask = LOG_UPTO (LOG_DEBUG);
|
||||||
|
|
Loading…
Reference in New Issue