The EvSignal class

(PECL ev >= 0.2.0)

Giriş

EvSignal watchers will trigger an event when the process receives a specific signal one or more times. Even though signals are very asynchronous, libev will try its best to deliver signals synchronously, i.e. as part of the normal event processing, like any other event.

There is no limit for the number of watchers for the same signal, but only within the same loop, i.e. one can watch for SIGINT in the default loop and for SIGIO in another loop, but it is not allowed to watch for SIGINT in both the default loop and another loop at the same time. At the moment, SIGCHLD is permanently tied to the default loop.

If possible and supported, libev will install its handlers with SA_RESTART (or equivalent) behaviour enabled, so system calls should not be unduly interrupted. In case of a problem with system calls getting interrupted by signals, all the signals can be blocked in an EvCheck watcher and unblocked in a EvPrepare watcher.

Sınıf Sözdizimi

class EvSignal extends EvWatcher {
/* Özellikler */
public $signum;
/* Miras alınan özellikler */
public $is_active;
public $data;
public $is_pending;
public $priority;
/* Yöntemler */
public function __construct(
     int $signum ,
     callable $callback ,
     mixed $data = null ,
     int $priority = 0
)
final public static function createStopped(
     int $signum ,
     callable $callback ,
     mixed $data = null ,
     int $priority = 0
): EvSignal
public function set( int $signum ): void
/* Miras alınan yöntemler */
public function EvWatcher::clear(): int
public function EvWatcher::feed( int $revents ): void
public function EvWatcher::getLoop(): EvLoop
public function EvWatcher::invoke( int $revents ): void
public function EvWatcher::keepalive( bool $value = ?): bool
public function EvWatcher::setCallback( callable $callback ): void
public function EvWatcher::start(): void
public function EvWatcher::stop(): void
}

Özellikler

signum
Signal number. See the constants exported by pcntl extension. See also signal(7) man page.

İçindekiler

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top