diff options
Diffstat (limited to 'common/threads.c')
-rw-r--r-- | common/threads.c | 6 |
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); } |