请问下 stream_select 这个作用是什么,网上找不到相关资料

六神花露水
while (1)
{
    $read = $this->_readFds;
    $write = $this->_writeFds;
    // 等待可读或者可写事件
    stream_select($read, $write, $e, 0, $this->_selectTimeout);

    // 尝试执行定时任务
    if(!$this->_scheduler->isEmpty())
    {
        $this->tick();
    }

    // 这些描述符可读,执行对应描述符的读回调函数
    if($read)
    {
        foreach($read as $fd)
        {
            $fd_key = (int) $fd;
            if(isset($this->_allEvents))
            {
                call_user_func_array($this->_allEvents, array($this->_allEvents));
            }
        }
    }

    // 这些描述符可写,执行对应描述符的写回调函数
    if($write)
    {
        foreach($write as $fd)
        {
            $fd_key = (int) $fd;
            if(isset($this->_allEvents))
            {
                call_user_func_array($this->_allEvents, array($this->_allEvents));
            }
        }
    }
}
阅读 3267
2个回答

BoBo_123

stream_select()等待sockets打开的连接事件