PHP Conference Japan 2024

EvCheck 類別

(PECL ev >= 0.2.0)

簡介

EvPrepareEvCheck 監視器通常成對使用。EvPrepare 監視器會在程序封鎖前被呼叫,EvCheck 則在之後。

不允許從 EvPrepareEvCheck 監視器呼叫 EvLoop::run() 或類似的進入目前事件迴圈的方法或函式。然而,其他非目前的迴圈則可以。這背後的理由是,您不需要在這些監視器中檢查遞迴,也就是說,順序永遠會是:EvPrepare -> 封鎖 -> EvCheck,所以當有各種類型的監視器時,它們永遠會成對呼叫,將封鎖呼叫括起來。

主要目的是將其他事件機制整合到 libev 中,它們的使用方式有些進階。例如,它們可以用來追蹤變數變更、實作自訂監視器、整合 net-snmp 或協程函式庫等等。它們偶爾也可用於快取某些資料,並希望在封鎖前清除快取。

建議給予 EvCheck 監視器最高的 (Ev::MAXPRI) 優先權,以確保它們在輪詢後在任何其他監視器之前執行(這對 EvPrepare 監視器沒有影響)。

此外,EvCheck 監視器不應啟用/觸發事件。雖然 libev 完全支援此功能,但它們可能會在其他 EvCheck 監視器完成工作之前執行。

類別概要

class EvCheck extends EvWatcher {
/* 繼承的屬性 */
public $is_active;
public $data;
public $is_pending;
public $priority;
/* 方法 */
public __construct( callable $callback , mixed $data = ?, int $priority = ?)
final public static createStopped( string $callback , string $data = ?, string $priority = ?): object
/* 繼承的方法 */
public EvWatcher::feed( int $revents ): void
public EvWatcher::invoke( int $revents ): void
public EvWatcher::keepalive( bool $value = ?): bool
public EvWatcher::setCallback( callable $callback ): void
}

目錄

新增筆記

使用者貢獻的筆記

此頁面沒有使用者貢獻的筆記。
To Top