/* IGNORE SIGNALS -- must be used inline */ #define ALL -1 #define OLDMASK() ((&__old)) #define NEWMASK() ((&__new)) #define IGNORE(sig) \ for (sigset_t __new, __old, \ *__i = (memset(&__new, 0, sizeof(sigset_t)), \ memset(&__old, 0, sizeof(sigset_t)), \ (((sig) == ALL) ? (sigfillset(&__new) && \ (err(EXIT_FAILURE, "sigfillset"), 1)) \ : (sigaddset(&__new, sig) && \ (err(EXIT_FAILURE, "sigaddset"), 1))), \ (sigprocmask(SIG_SETMASK, &__new, &__old) && \ (err(EXIT_FAILURE, "sigprocmask"), 1)), \ (sigset_t *)1); \ __i; (sigprocmask(SIG_SETMASK, &__old, __i = NULL) && \ (err(EXIT_FAILURE, "sigprocmask"), 1)))