(PECL ev >= 0.2.0)
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 noticeable effect is that as long as any idle watchers are active, the process will not block when waiting for new events.
public __construct ( callable $callback [, mixed $data [, int $priority ]] )
final public static createStopped ( string $callback [, mixed $data [, int $priority ]] ) : object
public EvWatcher::clear ( ) : int
abstract public EvWatcher::__construct ( )
public EvWatcher::feed ( int $revents ) : void
public EvWatcher::getLoop ( ) : EvLoop
public EvWatcher::invoke ( int $revents ) : void
public EvWatcher::keepalive ([ bool $value ] ) : bool
public EvWatcher::setCallback ( callable $callback ) : void
public EvWatcher::start ( ) : void
public EvWatcher::stop ( ) : void}
© 1997–2020 The PHP Documentation Group
Licensed under the Creative Commons Attribution License v3.0 or later.