diff --git a/winsup/cygwin/cygthread.cc b/winsup/cygwin/cygthread.cc index 54918e7677..ac772afb45 100644 --- a/winsup/cygwin/cygthread.cc +++ b/winsup/cygwin/cygthread.cc @@ -302,6 +302,20 @@ cygthread::terminate_thread () if (!inuse) goto force_notterminated; + if (_my_tls._ctinfo != this) + { +#if 0 + CONTEXT context; + context.ContextFlags = CONTEXT_CONTROL; +#endif + SuspendThread(h); +#if 0 + GetThreadContext(h, &context); +#else + yield (); +#endif + } + TerminateThread (h, 0); WaitForSingleObject (h, INFINITE); CloseHandle (h);