summaryrefslogtreecommitdiff
path: root/libphobos/libdruntime/gcc/emutls.d
diff options
context:
space:
mode:
Diffstat (limited to 'libphobos/libdruntime/gcc/emutls.d')
-rw-r--r--libphobos/libdruntime/gcc/emutls.d8
1 files changed, 4 insertions, 4 deletions
diff --git a/libphobos/libdruntime/gcc/emutls.d b/libphobos/libdruntime/gcc/emutls.d
index 6d9fb309a30..ee3603206b6 100644
--- a/libphobos/libdruntime/gcc/emutls.d
+++ b/libphobos/libdruntime/gcc/emutls.d
@@ -223,9 +223,9 @@ void** emutlsAlloc(shared __emutls_object* obj) nothrow @nogc
}
/*
- * When a thread has finished, remove the TLS array from the GC
- * scan list emutlsArrays, free all allocated TLS variables and
- * finally free the array.
+ * When a thread has finished, free all allocated TLS variables and empty the
+ * array. The pointer is not free'd as it is stil referenced by the GC scan
+ * list emutlsArrays, which gets destroyed when druntime is unloaded.
*/
extern (C) void emutlsDestroyThread(void* ptr) nothrow @nogc
{
@@ -237,7 +237,7 @@ extern (C) void emutlsDestroyThread(void* ptr) nothrow @nogc
free(entry[-1]);
}
- free(arr);
+ arr.length = 0;
}
/*