文字

EvEmbed::__construct

(PECL ev >= 0.2.0)

EvEmbed::__constructConstructs the EvEmbed object

说明

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.

参数

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
?>

参见

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