aboutsummaryrefslogtreecommitdiffstats
path: root/common/threads.c
diff options
context:
space:
mode:
Diffstat (limited to 'common/threads.c')
-rw-r--r--common/threads.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/common/threads.c b/common/threads.c
index 2655a244..6cfe383b 100644
--- a/common/threads.c
+++ b/common/threads.c
@@ -428,7 +428,11 @@ void althrd_thread_detach(void)
{
void *ptr = altss_get(TlsDestructors.keys[i]);
altss_dtor_t callback = (altss_dtor_t)TlsDestructors.values[i];
- if(ptr && callback) callback(ptr);
+ if(ptr)
+ {
+ if(callback) callback(ptr);
+ altss_set(TlsDestructors.keys[i], NULL);
+ }
}
UnlockUIntMapRead(&TlsDestructors);
}