summary refs log tree commit diff
path: root/linuxthreads/pthread.c
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>2002-08-04 03:25:12 +0000
committerRoland McGrath <roland@gnu.org>2002-08-04 03:25:12 +0000
commit5517266d33193ca13de097fa2775661c3bc6dac0 (patch)
tree77c86578cbec341eac97e3c1ffb2c8f34f5c7942 /linuxthreads/pthread.c
parent7498f1b0ba2c464d11db4ac04afc7d5612a8edd6 (diff)
downloadglibc-5517266d33193ca13de097fa2775661c3bc6dac0.tar.gz
glibc-5517266d33193ca13de097fa2775661c3bc6dac0.tar.xz
glibc-5517266d33193ca13de097fa2775661c3bc6dac0.zip
2002-08-02 Roland McGrath <roland@redhat.com>
	* sysdeps/pthread/bits/libc-tsd.h (enum __libc_tsd_key_t):
	Add _LIBC_TSD_KEY_LOCALE.
	* manager.c (pthread_start_thread) [!(USE_TLS && HAVE___THREAD)]:
	Call __uselocale to initialize our per-thread locale pointer to
	the global one.
	* pthread.c (__pthread_initialize_minimal): Likewise.
Diffstat (limited to 'linuxthreads/pthread.c')
-rw-r--r--linuxthreads/pthread.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/linuxthreads/pthread.c b/linuxthreads/pthread.c
index a5fcbd8118..ae42ebe1c8 100644
--- a/linuxthreads/pthread.c
+++ b/linuxthreads/pthread.c
@@ -32,6 +32,7 @@
 #include "restart.h"
 #include <ldsodefs.h>
 #include <tls.h>
+#include <locale.h>		/* for __uselocale */
 
 /* Sanity check.  */
 #if __ASSUME_REALTIME_SIGNALS && !defined __SIGRTMIN
@@ -460,6 +461,12 @@ __pthread_initialize_minimal(void)
   __pthread_initial_thread.p_cpuclock_offset = GL(dl_cpuclock_offset);
 # endif
 #endif
+
+#if !(USE_TLS && HAVE___THREAD) && defined SHARED
+  /* Initialize thread-locale current locale to point to the global one.
+     With __thread support, the variable's initializer takes care of this.  */
+  __uselocale (LC_GLOBAL_LOCALE);
+#endif
 }