mirror of
git://sourceware.org/git/glibc.git
synced 2025-01-24 12:25:35 +08:00
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).
This commit is contained in:
parent
160e53fdd1
commit
f0377954d7
@ -1,3 +1,13 @@
|
||||
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).
|
||||
|
||||
2002-08-26 Brian Youmans <3diff@gnu.org>
|
||||
|
||||
* Examples/ex10.c: Corrected version number in Lesser GPL copying
|
||||
|
@ -36,7 +36,8 @@ libpthread-routines := attr cancel condvar join manager mutex ptfork \
|
||||
ptlongjmp pthread signals specific errno lockfile \
|
||||
semaphore spinlock wrapsyscall rwlock pt-machine \
|
||||
oldsemaphore events getcpuclockid pspinlock barrier \
|
||||
ptclock_gettime ptclock_settime sighandler
|
||||
ptclock_gettime ptclock_settime sighandler \
|
||||
pthandles
|
||||
|
||||
nodelete-yes = -Wl,--enable-new-dtags,-z,nodelete
|
||||
initfirst-yes = -Wl,--enable-new-dtags,-z,initfirst
|
||||
|
@ -36,25 +36,6 @@
|
||||
#include "restart.h"
|
||||
#include "semaphore.h"
|
||||
|
||||
/* Array of active threads. Entry 0 is reserved for the initial thread. */
|
||||
struct pthread_handle_struct __pthread_handles[PTHREAD_THREADS_MAX]
|
||||
#ifdef USE_TLS
|
||||
# if __LT_SPINLOCK_INIT != 0
|
||||
= {
|
||||
{ __LOCK_INITIALIZER, NULL, 0},
|
||||
{ __LOCK_INITIALIZER, NULL, 0},
|
||||
/* All NULLs */
|
||||
}
|
||||
# endif
|
||||
#else
|
||||
= {
|
||||
{ __LOCK_INITIALIZER, &__pthread_initial_thread, 0},
|
||||
{ __LOCK_INITIALIZER, &__pthread_manager_thread, 0},
|
||||
/* All NULLs */
|
||||
}
|
||||
#endif
|
||||
;
|
||||
|
||||
/* For debugging purposes put the maximum number of threads in a variable. */
|
||||
const int __linuxthreads_pthread_threads_max = PTHREAD_THREADS_MAX;
|
||||
|
||||
|
6
linuxthreads/pthandles.c
Normal file
6
linuxthreads/pthandles.c
Normal file
@ -0,0 +1,6 @@
|
||||
#include <ldsodefs.h>
|
||||
#include "pthread.h"
|
||||
#include "internals.h"
|
||||
|
||||
/* Array of active threads. Entry 0 is reserved for the initial thread. */
|
||||
struct pthread_handle_struct __pthread_handles[PTHREAD_THREADS_MAX];
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user