diff options
Diffstat (limited to 'winsup')
-rw-r--r-- | winsup/cygwin/ChangeLog | 5 | ||||
-rw-r--r-- | winsup/cygwin/fork.cc | 3 |
2 files changed, 7 insertions, 1 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index 7f09dd2cc..4d285d955 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,5 +1,10 @@ 2003-12-23 Christopher Faylor <cgf@redhat.com> + * fork.cc (fork_child): After a pthread/fork, ensure that impure + pointer stuff which resides in parent is propagated to child thread. + +2003-12-23 Christopher Faylor <cgf@redhat.com> + * exceptions.cc (set_signal_mask): Redefine to not pass by address. Report calculated mask in debugging output. * sigproc.h (set_signal_mask): Reflect above change in declaration. diff --git a/winsup/cygwin/fork.cc b/winsup/cygwin/fork.cc index 63ba7abf2..7461c0bb4 100644 --- a/winsup/cygwin/fork.cc +++ b/winsup/cygwin/fork.cc @@ -264,7 +264,8 @@ fork_child (HANDLE& hParent, dll *&first_dll, bool& load_dlls) { _main_tls = &_my_tls; _main_tls->init_thread (NULL); - // memcpy (&_main_tls->local_clib, _impure_ptr, sizeof (*_main_tls->local_lib)); + _main_tls->local_clib = *_impure_ptr; + _impure_ptr = &_main_tls->local_clib; } set_file_api_mode (current_codepage); |