Loading...
Searching...
No Matches
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); \