A classe EvLoop

(PECL ev >= 0.2.0)

Introdução

Representa um laço de eventos que é sempre distinto do laço padrão. Ao contrário do laço padrão, ele não pode lidar com observadores EvChild.

Tendo threads, temos que criar um laço por thread e usar o laço padrão no thread pai.

O laço de eventos padrão é inicializado automaticamente por Ev. É acessível através de métodos da classe Ev, ou através do método EvLoop::defaultLoop().

Resumo da classe

final class EvLoop {
/* Propriedades */
public $data;
public $backend;
public $iteration;
public $pending;
public $io_interval;
public $depth;
/* Métodos */
public __construct(
     int $flags = ?,
     mixed $data = NULL ,
     float $io_interval = 0.0 ,
     float $timeout_interval = 0.0
)
public backend(): int
final public check( string $callback , string $data = ?, string $priority = ?): EvCheck
final public child(
     string $pid ,
     string $trace ,
     string $callback ,
     string $data = ?,
     string $priority = ?
): EvChild
public static defaultLoop(
     int $flags = Ev::FLAG_AUTO ,
     mixed $data = NULL ,
     float $io_interval = 0. ,
     float $timeout_interval = 0.
): EvLoop
final public embed(
     string $other ,
     string $callback = ?,
     string $data = ?,
     string $priority = ?
): EvEmbed
final public fork( callable $callback , mixed $data = null , int $priority = 0 ): EvFork
final public idle( callable $callback , mixed $data = null , int $priority = 0 ): EvIdle
final public io(
     mixed $fd ,
     int $events ,
     callable $callback ,
     mixed $data = null ,
     int $priority = 0
): EvIo
public loopFork(): void
public now(): float
public nowUpdate(): void
final public periodic(
     float $offset ,
     float $interval ,
     callable $callback ,
     mixed $data = null ,
     int $priority = 0
): EvPeriodic
final public prepare( callable $callback , mixed $data = null , int $priority = 0 ): EvPrepare
public resume(): void
public run( int $flags = 0 ): void
final public signal(
     int $signum ,
     callable $callback ,
     mixed $data = null ,
     int $priority = 0
): EvSignal
final public stat(
     string $path ,
     float $interval ,
     callable $callback ,
     mixed $data = null ,
     int $priority = 0
): EvStat
public stop( int $how = ?): void
public suspend(): void
final public timer(
     float $after ,
     float $repeat ,
     callable $callback ,
     mixed $data = null ,
     int $priority = 0
): EvTimer
public verify(): void
}

Propriedades

data

Dados personalizados anexados ao laço

backend

Somente Leitura. As opções de backend indicando o backend do evento em uso.

is_default_loop

Somente Leitura. true se for o laço de eventos padrão.

iteration

A contagem de iterações atuais do laço. Veja Ev::iteration()

pending

O número de observadores pendentes. 0 indica que não há observadores pendentes.

io_interval

Um io_interval mais alto permite que libev gaste mais tempo coletando eventos EvIo, para que mais eventos possam ser tratados por iteração, ao custo de aumentar a latência. Os tempos limite (EvPeriodic e EvTimer ) não serão afetados. Definir isso com um valor diferente de zero introduzirá uma chamada sleep() adicional na maioria das iterações de laço. O tempo de suspensão garante que libev não pesquisará eventos EvIo mais de uma vez por esse intervalo, em média. Muitos programas geralmente podem se beneficiar configurando o io_interval para um valor próximo de 0.1, o que geralmente é suficiente para servidores interativos (não para jogos). Geralmente não faz muito sentido defini-lo com um valor inferior a 0.01, pois isso se aproxima da granularidade de tempo da maioria dos sistemas.

Veja também » FUNÇÕES DE CONTROLE DE LAÇOS DE EVENTOS .

timeout_interval

Um timeout_interval maior permite que libev gaste mais tempo coletando tempos limite, às custas de maior latência/jitter/inexatidão (o retorno de chamada do inspetor será chamado mais tarde). Os observadores de EvIo não serão afetados. Definir isso como um valor não nulo não introduzirá nenhuma sobrecarga no libev . Veja também » FUNÇÕES DE CONTROLE DE LAÇOS DE EVENTOS .

depth

A profundidade da recursão. Veja Ev::depth() .

Índice

  • EvLoop::backend — Retorna um inteiro descrevendo o backend usado por libev
  • EvLoop::check — Cria o objeto EvCheck associado à instância atual do laço de eventos
  • EvLoop::child — Cria o objeto EvChild associado ao laço de eventos atual
  • EvLoop::__construct — Constrói o objeto de laço de eventos
  • EvLoop::defaultLoop — Retorna ou cria o laço de eventos padrão
  • EvLoop::embed — Cria uma instância do observador EvEmbed associado ao objeto EvLoop atual
  • EvLoop::fork — Cria um objeto observador EvFork associado à instância atual do laço de eventos
  • EvLoop::idle — Cria objeto observador EvIdle associado à instância de laço de evento atual
  • EvLoop::invokePending — Invoca todos os observadores pendentes enquanto redefine seu estado pendente
  • EvLoop::io — Cria objeto observador EvIo associado à instância de laço de evento atual
  • EvLoop::loopFork — Deve ser chamado após um fork
  • EvLoop::now — Retorna o "horário do laço de eventos" atual
  • EvLoop::nowUpdate — Estabelece o horário atual consultando o kernel, atualizando o horário retornado por EvLoop::now no progresso
  • EvLoop::periodic — Cria um objeto observador EvPeriodic associado à instância atual do laço de eventos
  • EvLoop::prepare — Cria um objeto observador EvPrepare associado à instância atual do laço de eventos
  • EvLoop::resume — Retoma o laço de eventos padrão suspenso anteriormente
  • EvLoop::run — Começa a verificar eventos e chamar funções de retorno para o laço
  • EvLoop::signal — Cria um objeto observador EvSignal associado à instância atual do laço de eventos
  • EvLoop::stat — Cria objeto observador EvStat associado à instância de laço de evento atual
  • EvLoop::stop — Interrompe o laço de eventos
  • EvLoop::suspend — Suspende o laço
  • EvLoop::timer — Cria objeto observador EvTimer associado à instância de laço de evento atual
  • EvLoop::verify — Executa verificações de consistência interna (para depuração)
adicione uma nota

Notas Enviadas por Usuários (em inglês)

Não há notas de usuários para esta página.
To Top