1 #include <sysdep.h> 2 3 int __pthread_enable_asynccancel (void); 4 void __pthread_disable_asynccancel (int oldtype); 5 6 #pragma weak __pthread_enable_asynccancel 7 #pragma weak __pthread_disable_asynccancel 8 9 /* Always multi-thread (since there's at least the sig handler), but no 10 handling enabled. */ 11 #define SINGLE_THREAD_P (0) 12 #define RTLD_SINGLE_THREAD_P (0) 13 14 #define LIBC_CANCEL_ASYNC() ({ \ 15 int __cancel_oldtype = 0; \ 16 if (__pthread_enable_asynccancel) \ 17 __cancel_oldtype = __pthread_enable_asynccancel(); \ 18 __cancel_oldtype; \ 19 }) 20 21 #define LIBC_CANCEL_RESET(val) do { \ 22 if (__pthread_disable_asynccancel) \ 23 __pthread_disable_asynccancel (val); \ 24 } while (0) 25