Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'winsup/cygwin/cygthread.cc')
-rw-r--r--winsup/cygwin/cygthread.cc13
1 files changed, 9 insertions, 4 deletions
diff --git a/winsup/cygwin/cygthread.cc b/winsup/cygwin/cygthread.cc
index e3c177e6b..4945c5bb5 100644
--- a/winsup/cygwin/cygthread.cc
+++ b/winsup/cygwin/cygthread.cc
@@ -258,10 +258,15 @@ cygthread::terminate_thread ()
system_printf ("VirtualFree of allocation base %p<%p> failed, %E",
stack_ptr, m.AllocationBase);
- h = NULL;
- __name = NULL;
- stack_ptr = NULL;
- (void) InterlockedExchange (&inuse, 0); /* No longer in use */
+ if (is_freerange)
+ free (this);
+ else
+ {
+ h = NULL;
+ __name = NULL;
+ stack_ptr = NULL;
+ (void) InterlockedExchange (&inuse, 0); /* No longer in use */
+ }
}
/* Detach the cygthread from the current thread. Note that the