diff options
Diffstat (limited to 'winsup/cygwin/cygthread.cc')
-rw-r--r-- | winsup/cygwin/cygthread.cc | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/winsup/cygwin/cygthread.cc b/winsup/cygwin/cygthread.cc index 1f071b847..d20bf6853 100644 --- a/winsup/cygwin/cygthread.cc +++ b/winsup/cygwin/cygthread.cc @@ -213,6 +213,15 @@ cygthread::exit_thread () ExitThread (0); } +void +cygthread::release () +{ + h = NULL; + __name = NULL; + stack_ptr = NULL; + (void) InterlockedExchange (&inuse, 0); /* No longer in use */ +} + /* Forcibly terminate a thread. */ void cygthread::terminate_thread () @@ -242,12 +251,7 @@ cygthread::terminate_thread () if (is_freerange) free (this); else - { - h = NULL; - __name = NULL; - stack_ptr = NULL; - (void) InterlockedExchange (&inuse, 0); /* No longer in use */ - } + release (); } /* Detach the cygthread from the current thread. Note that the |