PHP Conference Japan 2024

EvSignal 類別

(PECL ev >= 0.2.0)

簡介

EvSignal 監聽器會在行程收到一次或多次特定訊號時觸發事件。即使訊號非常非同步,libev 仍會盡力同步傳遞訊號,也就是作為一般事件處理的一部分,就像其他事件一樣。

同一個訊號可以有不限數量的監聽器,但僅限於在同一個迴圈內。例如,可以在預設迴圈中監聽 SIGINT,並在另一個迴圈中監聽 SIGIO,但不允許同時在預設迴圈和其他迴圈中監聽 SIGINT。目前,SIGCHLD 永久綁定到預設迴圈。

如果可能且受支援,libev 會以啟用 SA_RESTART(或等效)行為的方式安裝其處理程式,因此系統呼叫不應被不必要地中斷。如果系統呼叫被訊號中斷發生問題,則可以使用 EvCheck 監聽器來封鎖所有訊號,並在 EvPrepare 監聽器中解除封鎖。

類別概要

class EvSignal extends EvWatcher {
/* 屬性 */
public $signum;
/* 繼承的屬性 */
public $is_active;
public $data;
public $is_pending;
public $priority;
/* 方法 */
public __construct(
     int $signum,
     callable $callback,
     mixed $data = null,
     int $priority = 0
)
final public static createStopped(
     int $signum,
     callable $callback,
     mixed $data = null,
     int $priority = 0
): EvSignal
public set( int $signum ): void
/* 繼承的方法 */
public EvWatcher::feed( int $revents ): void
public EvWatcher::invoke( int $revents ): void
public EvWatcher::keepalive( bool $value = ?): bool
公開 EvWatcher::setCallback( 可呼叫 $callback ):
}

屬性

signum

訊號編號。請參閱 pcntl 擴充功能匯出的常數。另請參閱 signal(7) 線上手冊。

目錄

新增註釋

使用者貢獻的註釋

此頁面沒有使用者貢獻的註釋。
To Top