EvEmbed
final class EvEmbed extends EvWatcher (View source)
Class EvEmbed
Used to embed one event loop into another.
Properties
bool | $is_active | from EvWatcher | |
bool | $is_pending | from EvWatcher | |
mixed | $data | from EvWatcher | |
int | $priority | from EvWatcher | |
EvLoop | $embed |
Methods
Constructs the EvEmbed object.
Invokes the watcher callback with the given received events bit mask.
Make a single, non-blocking sweep over the embedded loop.
Create stopped EvEmbed watcher object
Details
__construct(EvLoop $other, callable $callback, mixed $data = null, int $priority = 0)
Constructs the EvEmbed object.
This is a rather advanced watcher type that lets to embed one event loop into another(currently only IO events are supported in the embedded loop, other types of watchers might be handled in a delayed or incorrect fashion and must not be used).
See the libev documentation for details.
This watcher is most useful on BSD systems without working kqueue to still be able to handle a large number of sockets.
int
clear()
Clear watcher pending status.
If the watcher is pending, this method clears its pending status and returns its revents bitset (as if its callback was invoked). If the watcher isn't pending it does nothing and returns 0.
Sometimes it can be useful to "poll" a watcher instead of waiting for its callback to be invoked, which can be accomplished with this function.
feed(int $revents)
Feeds the given revents set into the event loop.
Feeds the given revents set into the event loop, as if the specified event had happened for the watcher.
EvLoop
getLoop()
Returns the loop responsible for the watcher.
invoke(int $revents)
Invokes the watcher callback with the given received events bit mask.
keepalive(bool $value = true)
Configures whether to keep the loop from returning.
Configures whether to keep the loop from returning. With keepalive value set to FALSE the watcher won't keep Ev::run() / EvLoop::run() from returning even though the watcher is active.
Watchers have keepalive value TRUE by default.
Clearing keepalive status is useful when returning from Ev::run() / EvLoop::run() just because of the watcher is undesirable. It could be a long running UDP socket watcher or so.
setCallback(callable $callback)
Sets new callback for the watcher.
start()
Starts the watcher.
Marks the watcher as active. Note that only active watchers will receive events.
stop()
Stops the watcher.
Marks the watcher as inactive. Note that only active watchers will receive events.
set(EvLoop $other)
Configures the watcher.
sweep()
Make a single, non-blocking sweep over the embedded loop.