Update.
authorUlrich Drepper <drepper@redhat.com>
Wed, 27 Aug 2003 19:20:24 +0000 (19:20 +0000)
committerUlrich Drepper <drepper@redhat.com>
Wed, 27 Aug 2003 19:20:24 +0000 (19:20 +0000)
2003-08-27  Ulrich Drepper  <drepper@redhat.com>

* sysdeps/pthread/pthread.h (pthread_exit): Remove __THROW.
(__pthread_cleanup_class): Add missing return types of member
functions.

nptl/ChangeLog
nptl/sysdeps/pthread/pthread.h

index fa41d2a..5d4a2fb 100644 (file)
@@ -1,3 +1,9 @@
+2003-08-27  Ulrich Drepper  <drepper@redhat.com>
+
+       * sysdeps/pthread/pthread.h (pthread_exit): Remove __THROW.
+       (__pthread_cleanup_class): Add missing return types of member
+       functions.
+
 2003-08-26  Steven Munroe <sjmunroe@us.ibm.com>
 
        * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
index df6751f..af0a22a 100644 (file)
@@ -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