diff options
Diffstat (limited to 'nptl/cancellation.c')
-rw-r--r-- | nptl/cancellation.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/nptl/cancellation.c b/nptl/cancellation.c index 1d28d383f9..81134a679a 100644 --- a/nptl/cancellation.c +++ b/nptl/cancellation.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2002, 2003 Free Software Foundation, Inc. +/* Copyright (C) 2002, 2003, 2009 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@redhat.com>, 2002. @@ -70,6 +70,10 @@ __pthread_disable_asynccancel (int oldtype) return; struct pthread *self = THREAD_SELF; + +#ifdef THREAD_ATOMIC_AND + THREAD_ATOMIC_AND (self, cancelhandling, ~CANCELTYPE_BITMASK); +#else int oldval = THREAD_GETMEM (self, cancelhandling); while (1) @@ -87,4 +91,5 @@ __pthread_disable_asynccancel (int oldtype) /* Prepare the next round. */ oldval = curval; } +#endif } |