(PECL ev >= 0.2.0)
EvSignal 監聽器會在行程收到一次或多次特定訊號時觸發事件。即使訊號非常非同步,libev 仍會盡力同步傳遞訊號,也就是作為一般事件處理的一部分,就像其他事件一樣。
同一個訊號可以有不限數量的監聽器,但僅限於在同一個迴圈內。例如,可以在預設迴圈中監聽 SIGINT
,並在另一個迴圈中監聽 SIGIO
,但不允許同時在預設迴圈和其他迴圈中監聽 SIGINT
。目前,SIGCHLD
永久綁定到預設迴圈。
如果可能且受支援,libev 會以啟用 SA_RESTART
(或等效)行為的方式安裝其處理程式,因此系統呼叫不應被不必要地中斷。如果系統呼叫被訊號中斷發生問題,則可以使用 EvCheck 監聽器來封鎖所有訊號,並在 EvPrepare 監聽器中解除封鎖。
$signum
,$callback
,$data
= null
,$priority
= 0訊號編號。請參閱 pcntl 擴充功能匯出的常數。另請參閱 signal(7)
線上手冊。