about summary refs log tree commit diff
path: root/linuxthreads/pthread.c
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2002-08-28 06:47:35 +0000
committerUlrich Drepper <drepper@redhat.com>2002-08-28 06:47:35 +0000
commitf0377954d7c324c0fe320eb1ca22ea46837e9da3 (patch)
treeaa821826e08c86452eb7e6486c1e5518c037da8f /linuxthreads/pthread.c
parent160e53fdd18eea8703f5dbcc2e32d9f2689ef3b1 (diff)
downloadglibc-f0377954d7c324c0fe320eb1ca22ea46837e9da3.tar.gz
glibc-f0377954d7c324c0fe320eb1ca22ea46837e9da3.tar.xz
glibc-f0377954d7c324c0fe320eb1ca22ea46837e9da3.zip
Update.
2002-08-08  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/unix/sysv/linux/bits/local_lim.h (PTHREAD_THREADS_MAX):
	Bump to 16384.
	* manager.c (__pthread_handles): Remove.
	* pthandles.c: New file.
	* pthread.c (__pthread_initialize_minimal): Initialize
	__pthread_handles[0] and __pthread_handles[1].
	* Makefile (libpthread-routines): Add pthandles (must be last).
Diffstat (limited to 'linuxthreads/pthread.c')
-rw-r--r--linuxthreads/pthread.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/linuxthreads/pthread.c b/linuxthreads/pthread.c
index 1848bfb31d..ae40254982 100644
--- a/linuxthreads/pthread.c
+++ b/linuxthreads/pthread.c
@@ -420,6 +420,11 @@ __pthread_initialize_minimal(void)
 #ifdef USE_TLS
   pthread_descr self;
 
+  /* First of all init __pthread_handles[0] and [1] if needed.  */
+# if __LT_SPINLOCK_INIT != 0
+  __pthread_handles[0].h_lock = __LOCK_INITIALIZER;
+  __pthread_handles[1].h_lock = __LOCK_INITIALIZER;
+# endif
 # ifndef SHARED
   /* Unlike in the dynamically linked case the dynamic linker has not
      taken care of initializing the TLS data structures.  */
@@ -451,6 +456,14 @@ __pthread_initialize_minimal(void)
   /* And fill in the pointer the the thread __pthread_handles array.  */
   __pthread_handles[0].h_descr = self;
 #else
+  /* First of all init __pthread_handles[0] and [1].  */
+# if __LT_SPINLOCK_INIT != 0
+  __pthread_handles[0].h_lock = __LOCK_INITIALIZER;
+  __pthread_handles[1].h_lock = __LOCK_INITIALIZER;
+# endif
+  __pthread_handles[0].h_descr = &__pthread_initial_thread;
+  __pthread_handles[1].h_descr = &__pthread_manager_thread;
+
   /* If we have special thread_self processing, initialize that for the
      main thread now.  */
 # ifdef INIT_THREAD_SELF