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