24 lines
		
	
	
		
			379 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
		
		
			
		
	
	
			24 lines
		
	
	
		
			379 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
| 
								 | 
							
								<?php
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								namespace NoccyLabs\Ipc\Signal;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class Signal
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    private $signo;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public function __construct(int $signo)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $this->signo = $signo;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public function setHandler(callable $handler):void
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        pcntl_signal($this->signo, $handler);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public function dispatch($pid):bool
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        return posix_kill($pid, $this->signo);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								}
							 |