文字
分享

Constructing signal events

Event can also watch for POSIX-style signals. To construct a handler for a signal, use Event::__construct() constructor with Event::SIGNAL flag, or Event::signal() factory method.

Example #1 Handling SIGTERM signal

<?php

class  MyEventSignal  {
    private 
$base $ev ;

    public function 
__construct ( $base ) {
        
$this -> base  $base ;
        
$this -> ev  Event :: signal ( $base SIGTERM , array( $this 'eventSighandler' ));
        
$this -> ev -> add ();
    }

    public function 
eventSighandler ( $no $c ) {
        echo 
"Caught signal  $no \n" ;
        
$this -> base -> exit ();
    }
}

$base  = new  EventBase ();
$c     = new  MyEventSignal ( $base );

$base -> loop ();
?>

Note that signal callbacks are run in the event loop after the signal occurs, so it is safe for them to call functions that you are not supposed to call from a regular POSIX signal handler.

See also » Fast portable non-blocking network programming with Libevent, Constructing Signal Events .

上一篇:Event callbacks下一篇:Event