summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--nptl/ChangeLog5
-rw-r--r--nptl/sysdeps/pthread/pthread.h8
2 files changed, 11 insertions, 2 deletions
diff --git a/nptl/ChangeLog b/nptl/ChangeLog
index d38913303a..a456d5c575 100644
--- a/nptl/ChangeLog
+++ b/nptl/ChangeLog
@@ -1,3 +1,8 @@
+2003-04-18  Ulrich Drepper  <drepper@redhat.com>
+
+	* sysdeps/pthread/pthread.h: Don't mark pthread_testcancel with
+	__THROW.
+
 2003-04-16  Jakub Jelinek  <jakub@redhat.com>
 
 	* tst-cancel4.c (do_test): Use %zd instead of %d when printing cnt.
diff --git a/nptl/sysdeps/pthread/pthread.h b/nptl/sysdeps/pthread/pthread.h
index 1c59e1ea2e..1433fe56f7 100644
--- a/nptl/sysdeps/pthread/pthread.h
+++ b/nptl/sysdeps/pthread/pthread.h
@@ -377,8 +377,12 @@ extern int pthread_cancel (pthread_t __th) __THROW;
 
 /* Test for pending cancellation for the current thread and terminate
    the thread as per pthread_exit(PTHREAD_CANCELED) if it has been
-   cancelled.  */
-extern void pthread_testcancel (void) __THROW;
+   cancelled.
+
+   Note that this function is explicitly not marked to not throw an
+   exception in C++ code.  If cancellation is implemented by unwinding
+   this is necessary to have the compiler generate the unwind information.  */
+extern void pthread_testcancel (void);
 
 
 /* Cancellation handling with integration into exception handling.  */