PHP 5.4.31 Released

The EvLoop class

(PECL ev >= 0.2.0)

Introduction

Represents an event loop that is always distinct from the default loop . Unlike the default loop , it cannot handle EvChild watchers.

Having threads we have to create a loop per thread, and use the the default loop in the parent thread.

The default event loop is initialized automatically by Ev . It is accessable via methods of the Ev class, or via EvLoop::defaultLoop() method.

Synopsis de la classe

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

Propriétés

data

Custom data attached to loop

backend

Readonly . The backend flags indicating the event backend in use.

is_default_loop

Readonly . TRUE if it is the default event loop.

iteration

The current iteration count of the loop. See Ev::iteration()

pending

The number of pending watchers. 0 indicates that there are no watchers pending.

io_interval

Higher io_interval allows libev to spend more time collecting EvIo events, so more events can be handled per iteration, at the cost of increasing latency. Timeouts (both EvPeriodic and EvTimer ) will not be affected. Setting this to a non-zero value will introduce an additional sleep() call into most loop iterations. The sleep time ensures that libev will not poll for EvIo events more often than once per this interval, on average. Many programs can usually benefit by setting the io_interval to a value near 0.1 , which is often enough for interactive servers(not for games). It usually doesn't make much sense to set it to a lower value than 0.01 , as this approaches the timing granularity of most systems.

See also » FUNCTIONS CONTROLLING EVENT LOOPS .

timeout_interval

Higher timeout_interval allows libev to spend more time collecting timeouts, at the expense of increased latency/jitter/inexactness(the watcher callback will be called later). EvIo watchers will not be affected. Setting this to a non-null value will not introduce any overhead in libev . See also » FUNCTIONS CONTROLLING EVENT LOOPS .

depth

The recursion depth. See Ev::depth() .

Sommaire

  • EvLoop::backend — Retourne un entier décrivant le backend utilisé par libev
  • EvLoop::check — Crée un objet EvCheck associé avec l'instance de la boucle d'événements courante
  • EvLoop::child — Crée un objet EvChild associé avec la boucle d'événements courante
  • EvLoop::__construct — Construit un objet de boucle d'événements
  • EvLoop::defaultLoop — Retourne ou crée la boucle d'événements par défaut
  • EvLoop::embed — Crée une instance de l'observateur EvEmbed associé avec l'objet de l'EvLoop courant
  • EvLoop::fork — Crée un objet EvFork watcher associé avec l'instance de la boucle de l'événement courant
  • EvLoop::idle — Crée un objet EvIdle watcher associé avec l'instance de la boucle de l'événement courant
  • EvLoop::invokePending — Invoque tous les watchers en attente pendant que leurs statuts de file d'attente ne soient réinitialisés
  • EvLoop::io — Crée un objet EvIo watcher associé avec l'instance de la boucle de l'événement courant
  • EvLoop::loopFork — Doit être appelé après un fork
  • EvLoop::now — Retourne le "event loop time" courant
  • EvLoop::nowUpdate — Etablit le temps courant en demandant au kernel, et mise à jour du temps retourné par EvLoop::now pendant l'exécution
  • EvLoop::periodic — Crée un objet EvPeriodic watcher associé avec l'instance de la boucle d'événement courant
  • EvLoop::prepare — Crée un objet EvPrepare watcher associé avec l'instance de la boucle d'événement courant
  • EvLoop::resume — Reprend une boucle d'évément précédemment stoppée
  • EvLoop::run — Commence à vérifier les événements et à appeler les fonctions de rappel de la boucle
  • EvLoop::signal — Crée un objet EvSignal watcher associé avec l'instance de la boucle d'événement courant
  • EvLoop::stat — Crée un objet EvStat watcher associé avec l'instance de la boucle d'événement courant
  • EvLoop::stop — Stoppe la boucle d'événement
  • EvLoop::suspend — Suspend la boucle
  • EvLoop::timer — Crée un objet EvTimer watcher associé avec l'instance de la boucle d'événement courant
  • EvLoop::verify — Effectue des vérifications de consistence interne (pour le débogage)
add a note add a note

User Contributed Notes

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