summaryrefslogtreecommitdiff
path: root/nptl/pthread_create.c
diff options
context:
space:
mode:
Diffstat (limited to 'nptl/pthread_create.c')
-rw-r--r--nptl/pthread_create.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/nptl/pthread_create.c b/nptl/pthread_create.c
index 41218745d6..8598e4c763 100644
--- a/nptl/pthread_create.c
+++ b/nptl/pthread_create.c
@@ -221,7 +221,8 @@ start_thread (void *arg)
/* This is where the try/finally block should be created. For
compilers without that support we do use setjmp. */
- if (__builtin_expect (setjmp (pd->cancelbuf) == 0, 1))
+ int not_first_call = setjmp (pd->cancelbuf);
+ if (__builtin_expect (! not_first_call, 1))
{
/* Run the code the user provided. */
#ifdef CALL_THREAD_FCT