From: Ulrich Drepper Date: Wed, 27 Aug 2003 19:20:24 +0000 (+0000) Subject: Update. X-Git-Tag: upstream/2.30~18866 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=68b9e1ae08d8f6246fa65ee61ea6bb2e3da7d6ff;p=external%2Fglibc.git Update. 2003-08-27 Ulrich Drepper * sysdeps/pthread/pthread.h (pthread_exit): Remove __THROW. (__pthread_cleanup_class): Add missing return types of member functions. --- diff --git a/nptl/ChangeLog b/nptl/ChangeLog index fa41d2a..5d4a2fb 100644 --- a/nptl/ChangeLog +++ b/nptl/ChangeLog @@ -1,3 +1,9 @@ +2003-08-27 Ulrich Drepper + + * sysdeps/pthread/pthread.h (pthread_exit): Remove __THROW. + (__pthread_cleanup_class): Add missing return types of member + functions. + 2003-08-26 Steven Munroe * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h diff --git a/nptl/sysdeps/pthread/pthread.h b/nptl/sysdeps/pthread/pthread.h index df6751f..af0a22a 100644 --- a/nptl/sysdeps/pthread/pthread.h +++ b/nptl/sysdeps/pthread/pthread.h @@ -176,9 +176,11 @@ extern int pthread_create (pthread_t *__restrict __newthread, void *(*__start_routine) (void *), void *__restrict __arg) __THROW; -/* Terminate calling thread. */ -extern void pthread_exit (void *__retval) - __THROW __attribute__ ((__noreturn__)); +/* Terminate calling thread. + + The registered cleanup handlers are called via exception handling + so we cannot mark this function with __THROW.*/ +extern void pthread_exit (void *__retval) __attribute__ ((__noreturn__)); /* Make calling thread wait for termination of the thread TH. The exit status of the thread is stored in *THREAD_RETURN, if THREAD_RETURN @@ -453,10 +455,10 @@ class __pthread_cleanup_class __pthread_cleanup_class (void (*__fct) (void *), void *__arg) : __cancel_routine (__fct), __cancel_arg (__arg), __do_it (1) { } ~__pthread_cleanup_class () { if (__do_it) __cancel_routine (__cancel_arg); } - __setdoit (int __newval) { __do_it = __newval; } - __defer () { pthread_setcanceltype (PTHREAD_CANCEL_DEFERRED, - &__cancel_type); } - __restore () const { pthread_setcanceltype (__cancel_type, 0); } + void __setdoit (int __newval) { __do_it = __newval; } + void __defer () { pthread_setcanceltype (PTHREAD_CANCEL_DEFERRED, + &__cancel_type); } + void __restore () const { pthread_setcanceltype (__cancel_type, 0); } }; /* Install a cleanup handler: ROUTINE will be called with arguments ARG