(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
= ?$callback
, 混合型別 (mixed) $data
= null (空值)
, 整數 (int) $priority
= 0 ): EvFork$callback
, 混合型別 (mixed) $data
= null (空值)
, 整數 (int) $priority
= 0 ): EvIdle$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$after
,$repeat
,$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 監視器將不受影響。將此值設為非 null 值不會在 libev 中引入任何額外開銷。另請參閱 » 控制事件循環的函式。
遞迴深度。請參閱 Ev::depth()。