A classe EvSignal

(PECL ev >= 0.2.0)

Introdução

Os observadores EvSignal irão acionar um evento quando o processo receber um sinal específico uma ou mais vezes. Mesmo que os sinais sejam muito assíncronos, libev tentará o seu melhor para entregar sinais de forma síncrona, ou seja, como parte do processamento normal de eventos, como qualquer outro evento.

Não há limite para o número de observadores para o mesmo sinal, mas apenas dentro do mesmo loop, ou seja, pode-se observar SIGINT no loop padrão e SIGIO em outro loop, mas não é permitido observar SIGINT no loop padrão e em outro loop ao mesmo tempo. No momento, SIGCHLD está permanentemente vinculado ao loop padrão.

Se possível e suportado, libev instalará seus manipuladores com o comportamento SA_RESTART (ou equivalente) habilitado, portanto as chamadas do sistema não devem ser interrompidas indevidamente. No caso de um problema com chamadas do sistema sendo interrompidas por sinais, todos os sinais podem ser bloqueados em um observador EvCheck e desbloqueados em um observador EvPrepare.

Resumo da classe

class EvSignal extends EvWatcher {
/* Propriedades */
public $signum;
/* Propriedades herdadas */
public $is_active;
public $data;
public $is_pending;
public $priority;
/* Métodos */
public __construct(
     int $signum ,
     callable $callback ,
     mixed $data = null ,
     int $priority = 0
)
final public static createStopped(
     int $signum ,
     callable $callback ,
     mixed $data = null ,
     int $priority = 0
): EvSignal
public set( int $signum ): void
/* Métodos herdados */
public EvWatcher::feed( int $revents ): void
public EvWatcher::invoke( int $revents ): void
public EvWatcher::keepalive( bool $value = ?): bool
public EvWatcher::setCallback( callable $callback ): void
}

Propriedades

signum

Número do sinal. Veja as constantes exportadas pela extensão pcntl. Veja também a página de manual signal(7).

Table of Contents