From 58d2d09bde3578bd25d55df03e962764ba81bd13 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Tue, 20 Aug 2002 08:12:32 +0000 Subject: Update. * sysdeps/generic/dl-tls.c (allocate_dtv): Optimize a bit. --- linuxthreads/ChangeLog | 7 +++++++ linuxthreads/manager.c | 8 ++++---- linuxthreads/pthread.c | 3 ++- 3 files changed, 13 insertions(+), 5 deletions(-) (limited to 'linuxthreads') diff --git a/linuxthreads/ChangeLog b/linuxthreads/ChangeLog index 5b08d3f17a..6b6195b7d2 100644 --- a/linuxthreads/ChangeLog +++ b/linuxthreads/ChangeLog @@ -1,3 +1,10 @@ +2002-08-20 Ulrich Drepper + + * manager.c (pthread_handle_create): Pass NULL to _dl_allocate_tls. + Pass true to _dl_deallocate_tls. + (pthread_free): Likewise. + * pthread.c (__pthread_initialize_manager): Likewise. + 2002-08-19 Ulrich Drepper * sysdeps/i386/useldt.h (DO_SET_THREAD_AREA): Use correct shift when diff --git a/linuxthreads/manager.c b/linuxthreads/manager.c index 655c7d64ab..24be94129b 100644 --- a/linuxthreads/manager.c +++ b/linuxthreads/manager.c @@ -599,7 +599,7 @@ static int pthread_handle_create(pthread_t *thread, const pthread_attr_t *attr, int saved_errno = 0; #ifdef USE_TLS - new_thread = _dl_allocate_tls (); + new_thread = _dl_allocate_tls (NULL); if (new_thread == NULL) return EAGAIN; #else @@ -619,7 +619,7 @@ static int pthread_handle_create(pthread_t *thread, const pthread_attr_t *attr, if (sseg >= PTHREAD_THREADS_MAX) { #ifdef USE_TLS - _dl_deallocate_tls (new_thread); + _dl_deallocate_tls (new_thread, true); #endif return EAGAIN; } @@ -803,7 +803,7 @@ static int pthread_handle_create(pthread_t *thread, const pthread_attr_t *attr, #endif } #ifdef USE_TLS - _dl_deallocate_tls (new_thread); + _dl_deallocate_tls (new_thread, true); #endif __pthread_handles[sseg].h_descr = NULL; __pthread_handles[sseg].h_bottom = NULL; @@ -890,7 +890,7 @@ static void pthread_free(pthread_descr th) munmap(guardaddr, stacksize + guardsize); #ifdef USE_TLS - _dl_deallocate_tls (th); + _dl_deallocate_tls (th, true); #endif } } diff --git a/linuxthreads/pthread.c b/linuxthreads/pthread.c index c43176c40f..b0ef7fb1be 100644 --- a/linuxthreads/pthread.c +++ b/linuxthreads/pthread.c @@ -623,7 +623,8 @@ int __pthread_initialize_manager(void) #ifdef USE_TLS /* Allocate memory for the thread descriptor and the dtv. */ - __pthread_handles[1].h_descr = manager_thread = tcb = _dl_allocate_tls (); + __pthread_handles[1].h_descr = manager_thread = tcb + = _dl_allocate_tls (NULL); if (tcb == NULL) { free(__pthread_manager_thread_bos); __libc_close(manager_pipe[0]); -- cgit v1.2.3