pcntl_sigtimedwait
Description
The pcntl_sigtimedwait of PCNTL for PHP waits for signals, with a timeout.
Syntax
pcntl_sigtimedwait( array $signals, array &$info = [], int $seconds = 0, int $nanoseconds = 0 ): int|false
Parameters
signals
The array of signals to wait for.
info
Set to an array containing information about the signal.
All | Description |
---|---|
signo | Signal number |
errno | An error number |
code | Signal code |
SIGCHLD | Description |
---|---|
status | Exit value or signal |
utime | User time consumed |
stime | System time consumed |
pid | Sending process ID |
uid | Real user ID of sending process |
SIGILL, SIGFPE, SIGSEGV, SIGBUS | Description |
---|---|
addr | Memory location which caused fault |
SIGPOLL | Description |
---|---|
band | Band event |
fd | File descriptor number |
seconds
Timeout in seconds.
nanoseconds
Timeout in nanoseconds.
Return
Returns a signal number on success, or false on failure.
Examples
1 · signals
<? $signal = SIGHUP; $mode = SIG_BLOCK; $signals = [ $signal ]; pcntl_sigprocmask($mode, $signals); $process_id = posix_getpid(); posix_kill($process_id, $signal); $return = pcntl_sigtimedwait($signals); echo $return;
2 · info · all
<? $signal = SIGHUP; $mode = SIG_BLOCK; $signals = [ $signal ]; pcntl_sigprocmask($mode, $signals); $process_id = posix_getpid(); posix_kill($process_id, $signal); $return = pcntl_sigtimedwait($signals, $info); echo $return . PHP_EOL; print_r($info);
3 · info · SIGCHLD
<? $signal = SIGCHLD; $mode = SIG_BLOCK; $signals = [ $signal ]; pcntl_sigprocmask($mode, $signals); $process_id = posix_getpid(); posix_kill($process_id, $signal); $return = pcntl_sigtimedwait($signals, $info); echo $return . PHP_EOL; print_r($info);
4 · info · SIGILL
<? $signal = SIGILL; $mode = SIG_BLOCK; $signals = [ $signal ]; pcntl_sigprocmask($mode, $signals); $process_id = posix_getpid(); posix_kill($process_id, $signal); $return = pcntl_sigtimedwait($signals, $info); echo $return . PHP_EOL; print_r($info);
5 · info · SIGPOLL
<? $signal = SIGPOLL; $mode = SIG_BLOCK; $signals = [ $signal ]; pcntl_sigprocmask($mode, $signals); $process_id = posix_getpid(); posix_kill($process_id, $signal); $return = pcntl_sigtimedwait($signals, $info); echo $return . PHP_EOL; print_r($info);
6 · seconds
<? $signal = SIGHUP; $mode = SIG_BLOCK; $signals = [ $signal ]; pcntl_sigprocmask($mode, $signals); $process_id = posix_getpid(); posix_kill($process_id, $signal); $seconds = 1; $return = pcntl_sigtimedwait($signals, $info, $seconds); echo $return . PHP_EOL; print_r($info);
1 Array ( [signo] => 1 [errno] => 0 [code] => 0 )
7 · nanoseconds
<? $signal = SIGHUP; $mode = SIG_BLOCK; $signals = [ $signal ]; pcntl_sigprocmask($mode, $signals); $process_id = posix_getpid(); posix_kill($process_id, $signal); $seconds = 1; $nanoseconds = 1; $return = pcntl_sigtimedwait($signals, $info, $seconds, $nanoseconds); echo $return . PHP_EOL; print_r($info);
1 Array ( [signo] => 1 [errno] => 0 [code] => 0 )
Links
Related
PCNTL
- pcntl_alarm
- pcntl_async_signals
- pcntl_errno
- pcntl_exec
- pcntl_fork
- pcntl_get_last_error
- pcntl_getpriority
- pcntl_rfork
- pcntl_setpriority
- pcntl_signal
- pcntl_signal_dispatch
- pcntl_signal_get_handler
- pcntl_sigprocmask
- pcntl_sigwaitinfo
- pcntl_strerror
- pcntl_unshare
- pcntl_wait
- pcntl_waitpid
- pcntl_wexitstatus
- pcntl_wifexited
- pcntl_wifsignaled
- pcntl_wifstopped
- pcntl_wstopsig
- pcntl_wtermsig