(PECL ev >= 0.2.0)
EvEmbed::__construct — Constrói o objeto EvEmbed
$other
,$callback
= ?,$data
= ?,$priority
= ?Este é um tipo de observador bastante avançado que permite incorporar um laço de eventos em outro (atualmente, apenas eventos de E/S são suportados no laço incorporado; outros tipos de observadores podem ser manipulados de forma atrasada ou incorreta e não devem ser usados).
Consulte » a documentção da libev para detalhes.
Este observador é mais útil em
sistemas BSD
sem
kqueue
funcional
para que ainda seja possível manipular um número grande de soquetes. Veja o exemplo abaixo.
other
Instância de EvLoop. O laço a ser incorporado, este laço precisa ser incorporável (consulte Ev::embeddableBackends()).
callback
Consulte funções de retorno observadoras.
data
Dados personalizados associados com o observador.
priority
Exemplo #1 Incorporando laço criado com o backend kqueue no laço padrão
<?php
/*
* Verifica se o kqueue está disponível, mas não é recomendado, e cria um backend kqueue
* para uso com soquetes (que geralmente funcionam com qualquer implementação kqueue).
* Armazena o laço de eventos kqueue/somente-soquete em loop_soquete. (Opcionalmente,
* pode-se usar EVFLAG_NOENV também)
*
* Exemplo emprestado de
* http://pod.tst.eu/http://cvs.schmorp.de/libev/ev.pod#Examples_CONTENT-9
*/
$loop = EvLoop::defaultLoop();
$soquete_loop = NULL;
$embed = NULL;
if (Ev::supportedBackends() & ~Ev::recommendedBackends() & Ev::BACKEND_KQUEUE) {
if (($soquete_loop = new EvLoop(Ev::BACKEND_KQUEUE))) {
$embed = new EvEmbed($loop);
}
}
if (!$soquete_loop) {
$soquete_loop = $loop;
}
// Agora usa $soquete_loop para todos os soquetes e $loop para qualquer outra coisa
?>