ConFoo 2025

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::feed( int $revents ): void
public EvWatcher::invoke( int $revents ): void
public EvWatcher::keepalive( bool $value = ?): bool
public EvWatcher::setCallback( callable $callback ): 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

add a note

User Contributed Notes

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