about summary refs log tree commit diff
path: root/src/thread
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2015-05-16 01:53:54 -0400
committerRich Felker <dalias@aerifal.cx>2015-05-16 01:53:54 -0400
commit68630b55c0c7219fe9df70dc28ffbf9efc8021d8 (patch)
tree2a412da23113bfd688bbef64880e78f41222dcec /src/thread
parent707d7c30f3379441de9b320536ddfd354f4c2143 (diff)
downloadmusl-68630b55c0c7219fe9df70dc28ffbf9efc8021d8.tar.gz
musl-68630b55c0c7219fe9df70dc28ffbf9efc8021d8.tar.xz
musl-68630b55c0c7219fe9df70dc28ffbf9efc8021d8.zip
eliminate costly tricks to avoid TLS access for current locale state
the code being removed used atomics to track whether any threads might
be using a locale other than the current global locale, and whether
any threads might have abstract 8-bit (non-UTF-8) LC_CTYPE active, a
feature which was never committed (still pending). the motivations
were to support early execution prior to setup of the thread pointer,
to partially support systems (ancient kernels) where thread pointer
setup is not possible, and to avoid high performance cost on archs
where accessing the thread pointer may be very slow.

since commit 19a1fe670acb3ab9ead0fe31859ca7d4fe40dd54, the thread
pointer is always available, so these hacks are no longer needed.
removing them greatly simplifies the affected code.
Diffstat (limited to 'src/thread')
-rw-r--r--src/thread/pthread_create.c6
1 files changed, 0 insertions, 6 deletions
diff --git a/src/thread/pthread_create.c b/src/thread/pthread_create.c
index 4eb8b888..de72818d 100644
--- a/src/thread/pthread_create.c
+++ b/src/thread/pthread_create.c
@@ -67,12 +67,6 @@ _Noreturn void __pthread_exit(void *result)
 		exit(0);
 	}
 
-	if (self->locale != &libc.global_locale) {
-		a_dec(&libc.uselocale_cnt);
-		if (self->locale->ctype_utf8)
-			a_dec(&libc.bytelocale_cnt_minus_1);
-	}
-
 	/* Process robust list in userspace to handle non-pshared mutexes
 	 * and the detached thread case where the robust list head will
 	 * be invalid when the kernel would process it. */