sigtimeout
old_func = signal(SIGALRM, sigtimeout);
struct timespec sigtimeout;
sigtimeout.tv_sec = 0;
sigtimeout.tv_nsec = 0;
while ((signo = sigtimedwait(&mask, NULL, &sigtimeout)) != -1) {