Если нет сигнала в set ожидает выполнения во время вызова, поток должен быть приостановлено, пока один или несколько не станут в ожидании. Сигналы, определяемые набором должны быть заблокированы в время вызова sigwait (); в противном случае поведение не определено. Влияние sigwait () на сигнал действия для сигналов в наборе не указано.
Это действительно неоднозначно,в чем разница между ожидающим
и блоком
здесь?
И его вывод о том, как выбирать между sigwait
и sigaction
не ясен вообще:
Таким образом, когда это необходимо для код запускается в ответ на асинхронный сигнал для уведомления поток, sigwait () следует использовать для обрабатывать сигнал. Альтернативно в общем, если реализация предоставляет семафоры, они также могут быть используется либо после sigwait (), либо из процедуры обработки сигналов ранее зарегистрированный с sigaction ().
Может ли кто-нибудь сделать причину sigwait
более рациональной?