sset
sigset_t sset;
(void) sigfillset(&sset);
(void) sigdelset(&sset, SIGTERM);
(void) sigdelset(&sset, SIGCLD);
(void) sigprocmask(SIG_SETMASK, &sset, &Oset);
sigact.sa_mask = sset;
sigact.sa_mask = sset;
sigset_t sset, oset;
(void) sigemptyset(&sset);
(void) sigaddset(&sset, sig);
if (sigprocmask(SIG_BLOCK, &sset, &oset) < 0)
sigset_t sset, oset;
(void) sigemptyset(&sset);
(void) sigaddset(&sset, sig);
if (sigprocmask(SIG_UNBLOCK, &sset, &oset) < 0)
sigset_t sset;
(void) sigemptyset(&sset);
(void) sigaddset(&sset, SIGALRM);
(void) sigaddset(&sset, SIGCHLD);
(void) sigaddset(&sset, SIGHUP);
(void) sigaddset(&sset, SIGINT);
(void) sigaddset(&sset, SIGTERM);
(void) sigaddset(&sset, SIGUSR1);
(void) sigprocmask(block ? SIG_BLOCK : SIG_UNBLOCK, &sset, NULL);
sigset_t sset;
(void) sigemptyset(&sset);
(void) sigaddset(&sset, SIGUSR1);
(void) sigaddset(&sset, SIGCLD);
(void) sigprocmask(SIG_BLOCK, &sset, NULL);
sig = sigwait(&sset);
static struct sset *processed;
struct sset *sset_init(unsigned int first, unsigned int last)
struct sset *s = malloc(sizeof(*s) + size * 2 * sizeof(s->sets[0]));
void sset_free(struct sset *s)
extern struct sset *sset_init(unsigned int size, unsigned int off);
extern void sset_free(struct sset *s);
static inline void sset_reset(struct sset *s)
static inline void sset_add(struct sset *s, unsigned int idx)
static inline bool sset_test(struct sset *s, unsigned int idx)
static inline bool sset_testset(struct sset *s, unsigned int idx)