aboutsummaryrefslogtreecommitdiff
path: root/nptl
diff options
context:
space:
mode:
Diffstat (limited to 'nptl')
-rw-r--r--nptl/ChangeLog2
-rw-r--r--nptl/pthread_create.c2
2 files changed, 3 insertions, 1 deletions
diff --git a/nptl/ChangeLog b/nptl/ChangeLog
index 27a30b1e2f..6e4ea822b8 100644
--- a/nptl/ChangeLog
+++ b/nptl/ChangeLog
@@ -1,5 +1,7 @@
2003-03-14 Ulrich Drepper <drepper@redhat.com>
+ * pthread_create.c (start_thread): setjmp is expected to return 0.
+
* sysdeps/x86_64/tls.h (THREAD_GETMEM): Mark asms volatile.
(THREAD_GETMEM_NC): Likewise.
diff --git a/nptl/pthread_create.c b/nptl/pthread_create.c
index 519d0c6f60..0eb7dc7c81 100644
--- a/nptl/pthread_create.c
+++ b/nptl/pthread_create.c
@@ -221,7 +221,7 @@ start_thread (void *arg)
/* This is where the try/finally block should be created. For
compilers without that support we do use setjmp. */
- if (setjmp (pd->cancelbuf) == 0)
+ if (__builtin_expect (setjmp (pd->cancelbuf) == 0, 1))
{
/* Run the code the user provided. */
THREAD_SETMEM (pd, result, pd->start_routine (pd->arg));