La classe EvIdle

(PECL ev >= 0.2.0)

Introduction

Les watchers EvIdle lancent les Ă©vĂ©nements lorsqu'aucun autre Ă©vĂ©nement ayant la mĂȘme (ou supĂ©rieure) prioritĂ© n'est en attente (EvPrepare, EvCheck et d'autres watchers EvIdle ne comptent pas recevoir d'Ă©vĂ©nements).

Aussi, tant que le processus est en cours de gestion des sockets ou des dĂ©lais d'attente maximal (ou mĂȘme de signaux) de mĂȘme prioritĂ© (ou de prioritĂ© supĂ©rieure), il ne sera pas lancĂ©. Mais lorsque le processus est au ralenti (ou que seuls des watchers ayant une prioritĂ© basse ne sont en attente), les watchers EvIdle seront appelĂ©s une fois par itĂ©ration de la boucle d'Ă©vĂ©nements - et ce, tant qu'ils ne sont pas stoppĂ©s, ou que le processus ne reçoive plus d'Ă©vĂ©nements et devienne ainsi occupĂ© Ă  gĂ©rer les travaux ayant une prioritĂ© supĂ©rieure.

En plus de maintenir le processus non bloquant (ce qui est utile parfois), les watchers EvIdle sont un bon endroit pour réaliser des "travaux en pseudo-arriÚre plan", ou remettre des travaux aprÚs que la boucle d'événements n'ait géré les événements exceptionnels.

L'effet le plus notable est que, tant que des watchers idle sont actifs, le processus ne va pas bloquer lors de l'attente de nouveaux événements.

Synopsis de la classe

class EvIdle extends EvWatcher {
/* Propriétés héritées */
public $is_active;
public $data;
public $is_pending;
public $priority;
/* Méthodes */
public function __construct( callable $callback , mixed $data = ?, int $priority = ?)
final public static function createStopped( string $callback , mixed $data = ?, int $priority = ?): object
/* Méthodes héritées */
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
}

Sommaire

add a note

User Contributed Notes

There are no user contributed notes for this page.