Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

evidle(3) [php man page]

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)

Check Out this Related Man Page

EVCHECK(3)								 1								EVCHECK(3)

The EvCheck class

INTRODUCTION
EvPrepare and EvCheck watchers are usually used in pairs. EvPrepare watchers get invoked before the process blocks, EvCheck afterwards. It is not allowed to call EvLoop::run or similar methods or functions that enter the current event loop from either EvPrepare or EvCheck watchers. Other loops than the current one are fine, however. The rationale behind this is that one don't need to check for recursion in those watchers, i.e. the sequence will always be: EvPrepare -> blocking -> EvCheck , so having a watcher of each kind they will always be called in pairs bracketing the blocking call. The main purpose is to integrate other event mechanisms into libev and their use is somewhat advanced. They could be used, for example, to track variable changes, implement custom watchers, integrate net-snmp or a coroutine library and lots more. They are also occasionally use- ful to cache some data and want to flush it before blocking. It is recommended to give EvCheck watchers highest( Ev::MAXPRI ) priority, to ensure that they are being run before any other watchers after the poll (this doesn't matter for EvPrepare watchers). Also, EvCheck watchers should not activate/feed events. While libev fully supports this, they might get executed before other EvCheck watchers did their job. CLASS SYNOPSIS
EvCheck EvCheckextends EvWatcher Inherited properties o public$is_active o public$data o public$is_pending o public$priority Methods o public EvCheck::__construct (callable $callback, [mixed $data], [int $priority]) o finalpublicstatic object EvCheck::createStopped (string $callback, [string $data], [string $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 EVCHECK(3)
Man Page