PHP 8.6.0 Beta 1 is available for testing

Класс EvSignal

(PECL ev >= 0.2.0)

Введение

Наблюдатель EvSignal создаёт событие когда процесс получает один или несколько конкретных сигналов. Так как сигналы приходят асинхронно, libev старается с этим бороться и доставлять их синхронно, т.е аналогично всем остальным событиям в нормальном режиме обработки.

Ограничений на количество наблюдателей за одним и тем же сигналом нет, но только в пределах одного событийного цикла. Например, в цикле по умолчанию работает наблюдатель за SIGINT , а в другом цикле наблюдатель за SIGIO , но при этом нельзя наблюдать за SIGINT в двух циклах сразу. Ну и за SIGCHLD можно наблюдать только в цикле по умолчанию.

Если доступно и поддерживается, libev устанавливает свои обработчики с разрешённым поведением SA_RESTART (или аналогом), поэтому системные вызовы не будут некорректно прерываться. Если будут возникать проблемы с прерыванием системных вызовов сигналами, все сигналы можно блокировать в наблюдателе EvCheck и разблокировать в наблюдателе EvPrepare .

Обзор класса

class EvSignal extends EvWatcher {
/* Свойства */
public $signum ;
/* Наследуемые свойства */
public $is_active ;
public $data ;
public $is_pending ;
public $priority ;
/* Методы */
public function __construct (
int $signum ,
callable $callback ,
mixed $data = null ,
int $priority = 0
)
final public static function createStopped (
int $signum ,
callable $callback ,
mixed $data = null ,
int $priority = 0
): EvSignal
public function set ( int $signum ): void
/* Наследуемые методы */
public function EvWatcher::clear (): int
public function EvWatcher::feed ( int $revents ): void
public function EvWatcher::getLoop (): EvLoop
public function EvWatcher::invoke ( int $revents ): void
public function EvWatcher::keepalive ( bool $value = ?): bool
public function EvWatcher::setCallback ( callable $callback ): void
public function EvWatcher::start (): void
public function EvWatcher::stop (): void
}

Свойства

signum
Номер сигнала. Смотрите константы, экспортированные модулем pcntl. Также смотрите страницу руководства signal(7).

Содержание

Нашли ошибку?

ИнструкцияИсправлениеСообщение об ошибке
+Добавить

Примечания пользователей

Пользователи ещё не добавляли примечания для страницы

AltStyle によって変換されたページ (->オリジナル) /