(PECL ev >= 0.2.0)
表示一个事件循环,它始终与默认循环不同。与默认循环不同,它无法处理EvChild 观察者。
有了线程,我们必须为每个线程创建一个循环,并在父线程中使用默认循环。
默认事件循环由Ev自动初始化。可以通过Ev类的的方法访问,或者通过EvLoop::defaultLoop()方法访问。
$flags = ?,$data = NULL,$io_interval = 0.0,$timeout_interval = 0.0$pid,$trace,$callback,$data = ?,$priority = ?$flags = Ev::FLAG_AUTO,$data = NULL,$io_interval = 0.,$timeout_interval = 0.$other,$callback = ?,$data = ?,$priority = ?$fd,$events,$callback,$data = null,$priority = 0$offset,$interval,$callback,$data = null,$priority = 0$signum,$callback,$data = null,$priority = 0$path,$interval,$callback,$data = null,$priority = 0附加到循环的自定义数据
只读 . 指示正在使用的事件后端的后端标志。
只读 . 如果它是默认事件循环,则为true。
循环的当前迭代计数。参见 Ev::iteration()
挂起的观察者数量。0 表示没有观察者挂起。
较高的io_interval 允许libev 花更多时间收集EvIo 事件,因此每次迭代可以处理更多事件,但代价是增加延迟。超时(EvPeriodic 和EvTimer)不会受到影响。将其设置为非零值将在大多数循环迭代中引入额外的sleep()调用。睡眠时间确保libev 平均不会比此间隔内每隔一次更频繁地轮询EvIo 事件。许多程序通常可以通过将io_interval 设置为接近0.1 的值来获益,这对于交互式服务器(不适用于游戏)通常就足够了。将其设置为低于0.01 的值通常没有意义,因为这接近大多数系统的计时粒度。
另请参见 » 控制事件循环的函数。
较高的timeout_interval 允许libev 花更多时间收集超时,但代价是增加延迟/抖动/不精确性(观察者回调将稍后调用)。EvIo 观察者不会受到影响。将其设置为非空值不会在libev 中引入任何开销。另请参见 » 控制事件循环的函数。
递归深度。参见 Ev::depth()。