18 #ifndef _MERCURY_BOILERPLATE_SIGNAL_H 19 #define _MERCURY_BOILERPLATE_SIGNAL_H 23 #ifndef sigev_notify_thread_id 24 #define sigev_notify_thread_id _sigev_un._tid 28 #define __SIGRSVD(n) (SIGRTMIN + 8 + (n)) 30 #define SIGSUSP __SIGRSVD(0) 31 #define SIGRESM __SIGRSVD(1) 32 #define SIGRELS __SIGRSVD(2) 33 #define SIGRRB __SIGRSVD(3) 34 #define SIGAGENT __SIGRSVD(4) 35 #define SIGPERIOD __SIGRSVD(5) 38 #define __SIGPRIV(n) __SIGRSVD(8 + (n)) 40 #define SIGSAFE_LOCK_ENTRY(__safelock) \ 42 sigset_t __safeset, __oldsafeset; \ 43 sigemptyset(&__safeset); \ 44 sigaddset(&__safeset, SIGSUSP); \ 45 pthread_sigmask(SIG_BLOCK, &__safeset, &__oldsafeset); \ 46 push_cleanup_lock(__safelock); \ 47 write_lock(__safelock); 49 #define SIGSAFE_LOCK_EXIT(__safelock) \ 50 write_unlock(__safelock); \ 51 pop_cleanup_lock(&__safelock); \ 52 pthread_sigmask(SIG_SETMASK, &__oldsafeset, NULL); \