Когда я получаю SIGCHLD, системные вызовы блокировки, такие как read, не возвращаются (с EINTR). Если я получу другой сигнал, они это сделают.
Не имеет значения, установлен ли обработчик сигнала в обработчик или в SIG_DFL. SA_RESTART не установлен, его явное отключение с помощью siginterrupt (SIGCHLD, TRUE) ничего не дает.
Почему SIGCHLD имеет особое поведение?
Как я могу настроить, чтобы системные вызовы прерывались SIIGCHILD?
Подробнее здесь: https://stackoverflow.com/questions/792 ... s-i-e-read