php-ipc/src/Signal/Signal.php

41 lines
750 B
PHP
Raw Normal View History

2018-04-15 14:41:46 +00:00
<?php
namespace NoccyLabs\Ipc\Signal;
class Signal
{
private $signo;
2018-04-15 20:08:19 +00:00
/**
* Constructor
*
* @param integer $signo
*/
2018-04-15 14:41:46 +00:00
public function __construct(int $signo)
{
$this->signo = $signo;
}
2018-04-15 20:08:19 +00:00
/**
* Set a signal handler, overwriting any previous handler
*
* @param callable $handler
* @return void
*/
2018-04-15 14:41:46 +00:00
public function setHandler(callable $handler):void
{
pcntl_signal($this->signo, $handler);
}
2018-04-15 20:08:19 +00:00
/**
* Dispatch the signal to the specified pid. Default is own pid
*
* @param int $pid
* @return boolean
*/
public function dispatch(int $pid=null):bool
2018-04-15 14:41:46 +00:00
{
return posix_kill($pid?:posix_getpid(), $this->signo);
2018-04-15 14:41:46 +00:00
}
}