diff options
author | Christopher Faylor <me@cgf.cx> | 2013-06-07 15:37:11 +0000 |
---|---|---|
committer | Christopher Faylor <me@cgf.cx> | 2013-06-07 15:37:11 +0000 |
commit | 97911774484304d27f9db9581b10e4dac0189134 (patch) | |
tree | f9bc9851d063466bcc4928e3b07180d4ec47dce9 /winsup | |
parent | 7eed26ae5b4529b1732c1f3405b4adaacf425fab (diff) | |
download | newlib-97911774484304d27f9db9581b10e4dac0189134.zip newlib-97911774484304d27f9db9581b10e4dac0189134.tar.gz newlib-97911774484304d27f9db9581b10e4dac0189134.tar.bz2 |
* DevNotes: Add entry cgf-000023.
* sigproc.cc (exit_thread): Remove now-unneeded sleep code.
Diffstat (limited to 'winsup')
-rw-r--r-- | winsup/cygwin/ChangeLog | 5 | ||||
-rw-r--r-- | winsup/cygwin/DevNotes | 5 | ||||
-rw-r--r-- | winsup/cygwin/sigproc.cc | 15 |
3 files changed, 10 insertions, 15 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index a02ca36..0ac85de 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,8 @@ +2013-06-07 Christopher Faylor <me.cygwin2013@cgf.cx> + + * DevNotes: Add entry cgf-000023. + * sigproc.cc (exit_thread): Remove now-unneeded sleep code. + 2013-06-05 Corinna Vinschen <corinna@vinschen.de> * include/cygwin/version.h (CYGWIN_VERSION_DLL_MINOR): Bump to 21. diff --git a/winsup/cygwin/DevNotes b/winsup/cygwin/DevNotes index 70f4ec2..3016075 100644 --- a/winsup/cygwin/DevNotes +++ b/winsup/cygwin/DevNotes @@ -1,3 +1,8 @@ +2013-06-07 cgf-000023 + +Given the fact that the signal thread never exits there is no need +for exit_thread to ever block. So, nuke this code. + 2013-01-31 cgf-000022 While researching the lftp behavior reported here: diff --git a/winsup/cygwin/sigproc.cc b/winsup/cygwin/sigproc.cc index 55c5bba..80a6fff 100644 --- a/winsup/cygwin/sigproc.cc +++ b/winsup/cygwin/sigproc.cc @@ -447,21 +447,6 @@ exit_thread (DWORD res) # undef ExitThread sigfillset (&_my_tls.sigmask); /* No signals wanted */ lock_process for_now; /* May block indefinitely when exiting. */ - /* ES_EXIT_STARTING indicates that exit is in progress. After setting - exit_state to ES_EXIT_STARTING, the global dtors are running first, - then the exit state is set to the next level in do_exit. We must not - block the thread exit while the global dtors are running, because - one of them might have called pthread_join, which is perfectly valid - for a global C++ destructor. - FIXME: Do we need another state between ES_EXIT_STARTING and - ES_SIGNAL_EXIT to narrow the gap in which the thread exit - is still valid? */ - if (exit_state > ES_EXIT_STARTING) - { - for_now.release (); - Sleep (INFINITE); - } - HANDLE h; if (!DuplicateHandle (GetCurrentProcess (), GetCurrentThread (), GetCurrentProcess (), &h, |