array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'pt_BR', ), 'this' => array ( 0 => 'evembed.construct.php', 1 => 'EvEmbed::__construct', ), 'up' => array ( 0 => 'class.evembed.php', 1 => 'EvEmbed', ), 'prev' => array ( 0 => 'class.evembed.php', 1 => 'EvEmbed', ), 'next' => array ( 0 => 'evembed.createstopped.php', 1 => 'EvEmbed::createStopped', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'en', 'path' => 'reference/ev/evembed/construct.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PECL ev >= 0.2.0)
EvEmbed::__construct — Constructs the EvEmbed object
$other
,$callback
= ?,$data
= ?,$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
Exemplo #1 Embedding loop created with kqueue backend into the default loop
<?php
/*
* Check if kqueue is available but not recommended and create a kqueue backend
* for use with sockets (which usually work with any kqueue implementation).
* Store the kqueue/socket-only event loop in loop_socket. (One might optionally
* use EVFLAG_NOENV, too)
*
* Example borrowed from
* http://pod.tst.eu/http://cvs.schmorp.de/libev/ev.pod#Examples_CONTENT-9
*/
$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
?>