(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()。