©
This document uses PHP Chinese website manual Release
(PECL eio >= 0.3.1b)
eio_get_event_stream — Get stream representing a variable used in internal communications with libeio.
eio_get_event_stream() acquires stream representing a variable used in internal communications with libeio. Could be used to bind with some event loop provided by other PECL extension, for example libevent.
此函数没有参数。
eio_get_event_stream() returns stream on success;
otherwise, NULL
Example #1 Using eio with libevent
<?php
function my_eio_poll ( $fd , $events , $arg ) {
if ( eio_nreqs ()) {
eio_poll ();
}
}
function my_res_cb ( $d , $r ) {
var_dump ( $r ); var_dump ( $d );
}
$base = event_base_new ();
$event = event_new ();
$fd = eio_get_event_stream ();
var_dump ( $fd );
eio_nop ( EIO_PRI_DEFAULT , "my_res_cb" , "nop data" );
eio_mkdir ( "/tmp/abc-eio-temp" , 0750 , EIO_PRI_DEFAULT , "my_res_cb" , "mkdir data" );
// set event flags
event_set ( $event , $fd , EV_READ , "my_eio_poll" , array( $event , $base ));
// set event base
event_base_set ( $event , $base );
// enable event
event_add ( $event );
// start event loop
event_base_loop ( $base );
?>
以上例程的输出类似于:
int(3) int(0) string(8) "nop data" int(0) string(10) "mkdir data"