首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

EvEmbed::__construct

(PECL ev >= 0.2.0)

EvEmbed::__construct — Constructs the EvEmbed object

Description

代码语言:javascript
复制
public EvEmbed::__construct (  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.

Parameters

other

Instance of EvLoop . The loop to embed, this loop must be embeddable(see Ev::embeddableBackends() ).

callback

data

Custom data associated with the watcher.

priority

Watcher priority

Return Values

Returns EvEmbed object on success.

Examples

Example #1 Embedding loop created with kqueue backend into the default loop

代码语言:javascript
复制
<?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
?>

See Also

  • Ev::embeddableBackends() - Returns the set of backends that are embeddable in other event loops.

← EvEmbed

EvEmbed::createStopped →

代码语言:txt
复制
 ? 1997–2017 The PHP Documentation Group

Licensed under the Creative Commons Attribution License v3.0 or later.

扫码关注腾讯云开发者

领取腾讯云代金券

http://www.vxiaotou.com