# La classe EvSignal

(PECL ev >= 0.2.0)

## Introduction

Les watchers EvSignal vont lancer un événement lorsque le processus reçoit un signal spécifique une ou plusieurs fois. Malgré le fait que les signaux soient asynchrones, libev va tenter de faire de son mieux pour délivrer les signaux de façon synchrone, i.e. tout comme n'importe quel autre événement.

Il n'y a aucune limite pour le nombre de watchers pour le même signal, mais seulement dans la même boucle, i.e. un peu surveiller `SIGINT` dans la boucle par défaut, et pour `SIGIO` dans une autre boucle, mais il n'est pas autorisé de surveiller `SIGINT` à la fois dans la boucle par défaut, et dans une autre boucle au même moment. A ce moment, `SIGCHLD` est lié de façon permanente à la boucle par défaut.

Si possible et si supporté, libev va installer son gestionnaire avec `SA_RESTART` (ou équivalent) activé, aussi, les appels système ne devraient pas être interrompus. Dans le cas d'un problème avec les appels système qui se verraient interrompus par des signaux, tous les signaux peuvent être bloqués dans un watcher EvCheck et débloqués dans un watcher EvPrepare.

## Synopsis de la classe

class EvSignal extends EvWatcher {
/* Propriétés */
public $signum;
/* Propriétés héritées */
public $is_active;
public $data;
public $is_pending;
public $priority;
/* Méthodes */
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éthodes héritées */
public EvWatcher::clear(): int
public EvWatcher::feed( int `$revents` ): void
public EvWatcher::getLoop(): EvLoop
public EvWatcher::invoke( int `$revents` ): void
public EvWatcher::keepalive( bool `$value` = ?): bool
public EvWatcher::setCallback( callable `$callback` ): void
public EvWatcher::start(): void
public EvWatcher::stop(): void
}

## Propriétés

signum

  Le numéro du signal. Voir les constantes exportées par l'extension pcntl. Voir aussi la page de manuel pour `signal(7)`.

## Sommaire

- EvSignal::__construct — Construit un objet watcher EvSignal
- EvSignal::createStopped — Crée un objet watcher EvSignal stoppé
- EvSignal::set — Configure le watcher