EvIdle (class)
The EvIdle class
Introduction
(PECL ev >= 0.2.0)
EvIdle
watchers trigger events
when no other events
of the same or higher priority are pending ( EvPrepare , EvCheck and other EvIdle
watchers do not count as receiving events
).
Thus, as long as the process is busy handling sockets or timeouts(or even signals) of the same or higher priority it will not be triggered. But when the process is in idle(or only lower-priority watchers are pending), the EvIdle
watchers are being called once per event loop iteration - until stopped, that is, or the process receives more events and becomes busy again with higher priority stuff.
Apart from keeping the process non-blocking(which is a useful on its own sometimes), EvIdle
watchers are a good place to do "pseudo-background processing"
, or delay processing stuff to after the event loop has handled all outstanding events.
The most not
iceable effect is that as long as any idle
watchers are active, the process will not
block when waiting for new events.
Class synopsis
EvIdle
extends EvWatcher {
/* Inherited properties */
public $is_active ;
public $data ;
public $is_pending ;
public $priority ;
/* Methods */
public __construct ( callable $callback [, mixed $data [, int $priority ]] )
final public static object createStopped ( string $callback [, mixed $data [, int $priority ]] )
/* Inherited methods */
public int EvWatcher::clear ( void )
abstract public EvWatcher::__construct ( void )
public void EvWatcher::feed ( int $revents )
public EvLoop EvWatcher::getLoop ( void )
public void EvWatcher::invoke ( int $revents )
public bool EvWatcher::keepalive ([ bool $value ] )
public void EvWatcher::setCallback ( callable $callback )
public void EvWatcher::start ( void )
public void EvWatcher::stop ( void )
}
Table of Contents
- EvIdle::__construct — Constructs the EvIdle watcher object
- EvIdle::createStopped — Creates instance of a stopped EvIdle watcher object
← EvFork::createStopped
EvIdle::__construct →
© 1997–2017 The PHP Documentation Group
Licensed under the Creative Commons Attribution License v3.0 or later.