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