PHP Conference Kansai 2025

La clase EvSignal

(PECL ev >= 0.2.0)

Introducción

Los watchers EvSignal lanzarán un evento cuando el proceso reciba una señal específica una o varias veces. A pesar de que las señales sean asíncronas, libev intentará hacer lo posible para entregar las señales de forma síncrona, es decir, al igual que cualquier otro evento.

No hay límite para el número de watchers para la misma señal, pero solo en la misma loop, es decir, se puede vigilar SIGINT en la loop por defecto, y para SIGIO en otra loop, pero no está permitido vigilar SIGINT tanto en la loop por defecto como en otra loop al mismo tiempo. En este momento, SIGCHLD está permanentemente vinculado a la loop por defecto.

Si es posible y está soportado, libev instalará su manejador con SA_RESTART (o equivalente) activado, por lo tanto, las llamadas al sistema no deberían ser interrumpidas. En el caso de un problema con las llamadas al sistema que se vieran interrumpidas por señales, todas las señales pueden ser bloqueadas en un watcher EvCheck y desbloqueadas en un watcher EvPrepare.

Sinopsis de la Clase

class EvSignal extends EvWatcher {
/* Propiedades */
public $signum;
/* Propiedades heredadas */
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 heredados */
public EvWatcher::feed( int $revents ): void
public EvWatcher::invoke( int $revents ): void
public EvWatcher::keepalive( bool $value = ?): bool
public EvWatcher::setCallback( callable $callback ): void
}

Propiedades

signum

El número de la señal. Ver las constantes exportadas por la extensión pcntl. Ver también la página del manual para signal(7).

Tabla de contenidos

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top