A classe EvIdle

(PECL ev >= 0.2.0)

Introdução

Os observadores EvIdle acionam eventos quando nenhum outro evento de prioridade igual ou superior está pendente ( EvPrepare , EvCheck e outros observadores EvIdle não contam como receptores de eventos ).

Assim, enquanto o processo estiver ocupado manipulando sockets ou timeouts (ou mesmo sinais) de prioridade igual ou superior, ele não será acionado. Mas quando o processo está ocioso(ou apenas observadores de prioridade mais baixa estão pendentes), os observadores EvIdle estão sendo chamados uma vez por iteração do loop de eventos - até serem interrompidos, isto é, ou o processo receber mais eventos e fica ocupado novamente com coisas de maior prioridade.

Além de manter o processo sem bloqueio (o que às vezes é útil por si só), os observadores EvIdle são um bom lugar para fazer "processamento de pseudo-background", ou atrasar processando coisas depois que o loop de eventos tiver tratado todos os eventos pendentes.

O efeito mais notável é que enquanto quaisquer observadores idle estiverem ativos, o processo não será bloqueado enquanto aguarda por novos eventos.

Resumo da classe

class EvIdle extends EvWatcher {
/* Propriedades herdadas */
public $is_active;
public $data;
public $is_pending;
public $priority;
/* Métodos */
public __construct( callable $callback , mixed $data = ?, int $priority = ?)
final public static createStopped( string $callback , mixed $data = ?, int $priority = ?): object
/* 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
}

Table of Contents