* DevNotes: Add entry cgf-000023.
* sigproc.cc (exit_thread): Remove now-unneeded sleep code.
This commit is contained in:
parent
7eed26ae5b
commit
9791177448
@ -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>
|
2013-06-05 Corinna Vinschen <corinna@vinschen.de>
|
||||||
|
|
||||||
* include/cygwin/version.h (CYGWIN_VERSION_DLL_MINOR): Bump to 21.
|
* include/cygwin/version.h (CYGWIN_VERSION_DLL_MINOR): Bump to 21.
|
||||||
|
@ -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
|
2013-01-31 cgf-000022
|
||||||
|
|
||||||
While researching the lftp behavior reported here:
|
While researching the lftp behavior reported here:
|
||||||
|
@ -447,21 +447,6 @@ exit_thread (DWORD res)
|
|||||||
# undef ExitThread
|
# undef ExitThread
|
||||||
sigfillset (&_my_tls.sigmask); /* No signals wanted */
|
sigfillset (&_my_tls.sigmask); /* No signals wanted */
|
||||||
lock_process for_now; /* May block indefinitely when exiting. */
|
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;
|
HANDLE h;
|
||||||
if (!DuplicateHandle (GetCurrentProcess (), GetCurrentThread (),
|
if (!DuplicateHandle (GetCurrentProcess (), GetCurrentThread (),
|
||||||
GetCurrentProcess (), &h,
|
GetCurrentProcess (), &h,
|
||||||
|
Loading…
Reference in New Issue
Block a user