aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2003-08-27 19:20:24 +0000
committerUlrich Drepper <drepper@redhat.com>2003-08-27 19:20:24 +0000
commit68b9e1ae08d8f6246fa65ee61ea6bb2e3da7d6ff (patch)
treec23ecdc26cf6d3af3d9d173477f0c8461cc015a2
parent45c24c06543eeb5eda07101aea5bb4488da9174a (diff)
downloadglibc-68b9e1ae08d8f6246fa65ee61ea6bb2e3da7d6ff.zip
glibc-68b9e1ae08d8f6246fa65ee61ea6bb2e3da7d6ff.tar.gz
glibc-68b9e1ae08d8f6246fa65ee61ea6bb2e3da7d6ff.tar.bz2
Update.
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.
-rw-r--r--nptl/ChangeLog6
-rw-r--r--nptl/sysdeps/pthread/pthread.h16
2 files changed, 15 insertions, 7 deletions
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 <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
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