EVIDLE(3) 1 EVIDLE(3)
The EvIdle class
INTRODUCTION
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 trig-
gered. 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-back-
ground 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.
CLASS SYNOPSIS
EvIdle
EvIdleextends
EvWatcher
Inherited properties
o public$is_active
o public$data
o public$is_pending
o public$priority
Methods
o public EvIdle::__construct (callable $callback, [mixed $data], [int $priority])
o finalpublicstatic object EvIdle::createStopped (string $callback, [mixed $data], [int $priority])
Inherited methods
o public int EvWatcher::clear (void )
o abstractpublic EvWatcher::__construct (void )
o public void EvWatcher::feed (int $revents)
o public EvLoop EvWatcher::getLoop (void )
o public void EvWatcher::invoke (int $revents)
o public bool EvWatcher::keepalive ([bool $value])
o public void EvWatcher::setCallback (callable $callback)
o public void EvWatcher::start (void )
o public void EvWatcher::stop (void )
PHP Documentation Group EVIDLE(3)