From 65947215c78a870c9e0b0217a7bd949164e1993b Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Wed, 17 Sep 2003 05:03:05 +0000 Subject: (manager_thread): Remove static, add attribute_hidden. (thread_self_stack): Rename to... (__pthread_self_stack): ... this. Remove static. (pthread_handle_sigcancel): Use check_thread_self (). (pthread_handle_sigrestart): Likewise. --- linuxthreads/pthread.c | 26 ++++---------------------- 1 file changed, 4 insertions(+), 22 deletions(-) (limited to 'linuxthreads') diff --git a/linuxthreads/pthread.c b/linuxthreads/pthread.c index 5d5368f4d7..d44f890eba 100644 --- a/linuxthreads/pthread.c +++ b/linuxthreads/pthread.c @@ -55,7 +55,7 @@ extern struct __res_state _res; #ifdef USE_TLS /* We need only a few variables. */ -static pthread_descr manager_thread; +pthread_descr manager_thread attribute_hidden; #else @@ -896,7 +896,7 @@ pthread_descr __pthread_find_self(void) #else -static pthread_descr thread_self_stack(void) +pthread_descr __pthread_self_stack(void) { char *sp = CURRENT_STACK_FRAME; pthread_handle h; @@ -1023,7 +1023,7 @@ static void pthread_atexit_retcode(void *arg, int retcode) static void pthread_handle_sigrestart(int sig) { - pthread_descr self = thread_self(); + pthread_descr self = check_thread_self(); THREAD_SETMEM(self, p_signal, sig); if (THREAD_GETMEM(self, p_signal_jmp) != NULL) siglongjmp(*THREAD_GETMEM(self, p_signal_jmp), 1); @@ -1036,31 +1036,13 @@ static void pthread_handle_sigrestart(int sig) static void pthread_handle_sigcancel(int sig) { - pthread_descr self = thread_self(); + pthread_descr self = check_thread_self(); sigjmp_buf * jmpbuf; if (self == manager_thread) { -#ifdef THREAD_SELF - /* A new thread might get a cancel signal before it is fully - initialized, so that the thread register might still point to the - manager thread. Double check that this is really the manager - thread. */ - pthread_descr real_self = thread_self_stack(); - if (real_self == manager_thread) - { - __pthread_manager_sighandler(sig); - return; - } - /* Oops, thread_self() isn't working yet.. */ - self = real_self; -# ifdef INIT_THREAD_SELF - INIT_THREAD_SELF(self, self->p_nr); -# endif -#else __pthread_manager_sighandler(sig); return; -#endif } if (__builtin_expect (__pthread_exit_requested, 0)) { /* Main thread should accumulate times for thread manager and its -- cgit 1.4.1