summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin
diff options
context:
space:
mode:
Diffstat (limited to 'winsup/cygwin')
-rw-r--r--winsup/cygwin/ChangeLog7
-rw-r--r--winsup/cygwin/thread.cc4
2 files changed, 7 insertions, 4 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index 055f6fcf7..e9f6ac952 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,5 +1,12 @@
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
search characters overwrote the path instead of being tacked on the
end.
diff --git a/winsup/cygwin/thread.cc b/winsup/cygwin/thread.cc
index 516cb8d2b..2304b7b42 100644
--- a/winsup/cygwin/thread.cc
+++ b/winsup/cygwin/thread.cc
@@ -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);