(PECL ev >= 0.2.0)
Наблюдатель EvSignal создаёт событие когда процесс получает один или несколько конкретных сигналов. Так как сигналы приходят асинхронно, libev старается с этим бороться и доставлять их синхронно, т.е аналогично всем остальным событиям в нормальном режиме обработки.
Ограничений на количество наблюдателей за одним и тем же сигналом нет, но только в пределах одного событийного цикла. Например, в цикле по умолчанию работает наблюдатель за SIGINT
, а в другом цикле наблюдатель за SIGIO
, но при этом нельзя наблюдать за SIGINT
в двух циклах сразу. Ну и за SIGCHLD
можно наблюдать только в цикле по умолчанию.
Если доступно и поддерживается, libev устанавливает свои обработчики с разрешённым поведением SA_RESTART
(или аналогом), поэтому системные вызовы не будут некорректно прерываться. Если будут возникать проблемы с прерыванием системных вызовов сигналами, все сигналы можно блокировать в наблюдателе EvCheck и разблокировать в наблюдателе EvPrepare.
Номер сигнала. Смотрите константы, экспортированные модулем pcntl. Также смотрите страницу руководства signal(7)
.