©
This document uses PHP Chinese website manual Release
(PECL ev >= 0.2.0)
EvEmbed::__construct — Constructs the EvEmbed object
$other
[, callable $callback
[, mixed $data
[, int $priority
]]] )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. See example below.
other
Instance of EvLoop . The loop to embed, this loop must be embeddable(see Ev::embeddableBackends() ).
callback
See Watcher callbacks .
data
Custom data associated with the watcher.
priority
Watcher priority
Returns EvEmbed object on success.
Example #1 Embedding loop created with kqueue backend into the default loop
<?php
$loop = EvLoop :: defaultLoop ();
$socket_loop = NULL ;
$embed = NULL ;
if ( Ev :: supportedBackends () & ~ Ev :: recommendedBackends () & Ev :: BACKEND_KQUEUE ) {
if (( $socket_loop = new EvLoop ( Ev :: BACKEND_KQUEUE ))) {
$embed = new EvEmbed ( $loop );
}
}
if (! $socket_loop ) {
$socket_loop = $loop ;
}
// Now use $socket_loop for all sockets, and $loop for anything else
?>