public inbox for gcc-cvs@sourceware.org
help / color / mirror / Atom feed
* [gcc r9-9832] libphobos: Don't call __gthread_key_delete in the emutls destroy function.
@ 2021-11-19 14:15 Iain Buclaw
0 siblings, 0 replies; only message in thread
From: Iain Buclaw @ 2021-11-19 14:15 UTC (permalink / raw)
To: gcc-cvs
https://gcc.gnu.org/g:e8005eb1bf061cc5fd7d9f32f721d99b450449f6
commit r9-9832-ge8005eb1bf061cc5fd7d9f32f721d99b450449f6
Author: Iain Buclaw <ibuclaw@gdcproject.org>
Date: Fri Nov 19 14:26:07 2021 +0100
libphobos: Don't call __gthread_key_delete in the emutls destroy function.
Fixes a EXC_BAD_ACCESS issue seen on Darwin when the libphobos DSO gets
unloaded. Based on reading libgcc's emutls implementation, as it
doesn't call __gthread_key_delete directly, neither should libphobos.
libphobos/ChangeLog:
* libdruntime/gcc/emutls.d (emutlsDestroyThread): Don't remove entry
from global array.
(_d_emutls_destroy): Don't call __gthread_key_delete.
(cherry picked from commit 910d2b4b7513b6bfe02777d44cd5377c22198086)
Diff:
---
libphobos/libdruntime/gcc/emutls.d | 6 ------
1 file changed, 6 deletions(-)
diff --git a/libphobos/libdruntime/gcc/emutls.d b/libphobos/libdruntime/gcc/emutls.d
index 461f20d9e28..72376ecda0f 100644
--- a/libphobos/libdruntime/gcc/emutls.d
+++ b/libphobos/libdruntime/gcc/emutls.d
@@ -229,9 +229,6 @@ void** emutlsAlloc(shared __emutls_object* obj) nothrow @nogc
extern (C) void emutlsDestroyThread(void* ptr) nothrow @nogc
{
auto arr = cast(TlsArray*) ptr;
- emutlsMutex.lock_nothrow();
- emutlsArrays.remove(arr);
- emutlsMutex.unlock_nothrow();
foreach (entry; *arr)
{
@@ -308,9 +305,6 @@ void _d_emutls_scan(scope void delegate(void* pbeg, void* pend) nothrow cb) noth
// Call this after druntime has been unloaded
void _d_emutls_destroy() nothrow @nogc
{
- if (__gthread_key_delete(emutlsKey) != 0)
- abort();
-
(cast(Mutex) _emutlsMutex.ptr).__dtor();
destroy(emutlsArrays);
}
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2021-11-19 14:15 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-11-19 14:15 [gcc r9-9832] libphobos: Don't call __gthread_key_delete in the emutls destroy function Iain Buclaw
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).