Я сделал что-то не так в своем коде, когда другой процесс отправил ему сигнал SIGUSR2:
sigset_t sigset;
sigemptyset(&sigset);
sigaddset(&sigset, SIGILL);
sigaddset(&sigset, SIGUSR2);
sigwait(&sigset, &received);
XCode замечает сигнал SIGUSER2 (31), полученный, но полученный = SIGILL (4) (или минимальный сигнал в наборе).
Почему это так? Где я не прав?
Теперь это выглядит так:
sigset_t sigset;
sigemptyset(&sigset);
sigaddset(&sigset, SIGILL);
sigaddset(&sigset, SIGUSR2);
sigprocmask(SIG_BLOCK, &sigset, 0);
sigwait(&sigset, &received);
if(received == SIGUSR2) {
//...
} else if(received == SIGILL) {
//...
}
Все еще не работает.