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