Класс EvSignal
(PECL ev >= 0.2.0)
Введение
Наблюдатель EvSignal создает событие когда процесс получает один или несколько конкретных сигналов. Так как сигналы приходят асинхронно, libev старается с этим бороться и доставлять их синхронно, т.е аналогично всем остальным событиям в нормальном режиме обработки.
Ограничений на количество наблюдателей за одним и тем же сигналом нет, но
только в пределах одного событийного цикла. Например, в цикле по умолчанию
работает наблюдатель за SIGINT
, а в другом цикле
наблюдатель за SIGIO
, но при этом нельзя
наблюдать за SIGINT
в двух циклах сразу. Ну и за
SIGCHLD
можно наблюдать только в цикле по умолчанию.
Если доступно и поддерживается, libev
устанавливает свои обработчики с разрешенным поведением
SA_RESTART
(или аналогом), поэтому системные вызовы
не будут некорректно прерываться. Если будут возникать проблемы с прерыванием
системных вызовов сигналами, все сигналы можно блокировать в
наблюдателе EvCheck и разблокировать в
наблюдателе EvPrepare.
Обзор классов
$signum
,
callable
$callback
,
mixed
$data
= null
,
int
$priority
= 0
) : EvSignalСвойства
- signum
-
Номер сигнала. Смотрите константы экспортированные расширением pcntl. Также смотрите страницу руководства
signal(7)
.
Содержание
- EvSignal::__construct — Конструктор объекта наблюдателя EvSignal
- EvSignal::createStopped — Create stopped EvSignal watcher object
- EvSignal::set — Настройка наблюдателя