#include #include #include static volatile int event = 0; static void handleSignal() { event = 1; } int main(int argc, char *argv[]) { puts("bar"); sigset_t mask; sigset_t old; signal(SIGUSR1, handleSignal); sigaddset(&mask, SIGUSR1); sigprocmask(SIG_BLOCK, &mask, &old); while (event == 0) { sigsuspend(&old); } event = 0; sigprocmask(SIG_SETMASK, &old,NULL); puts("foo"); return 0; }