In the case if pcntl_sigtimedwait() is unavailable (under Mac OS, under PHP < 5.3), you can pick up the workaround:
<?php
if (!function_exists('pcntl_sigtimedwait'))
{
function pcntl_sigtimedwait($signals,$siginfo,$sec,$nano)
{
pcntl_signal_dispatch();
if (time_nanosleep($sec,$nano) === TRUE) {return FALSE;}
pcntl_signal_dispatch();
return TRUE;
}
}
?>
Behaviour of this function differs from original one. This function returns true if a signal was retrieved and false if it was not retrieved. However, the timeout will be interrupted immediately when signal sent.
pcntl_sigtimedwait
(PHP 5 >= 5.3.0)
pcntl_sigtimedwait — Waits for signals, with a timeout
Descrição
int pcntl_sigtimedwait
( array $set
[, array &$siginfo
[, int $seconds = 0
[, int $nanoseconds = 0
]]] )
The pcntl_sigtimedwait() function operates in exactly the same way as pcntl_sigwaitinfo() except that it takes two additional parameters, seconds and nanoseconds , which enable an upper bound to be placed on the time for which the script is suspended.
Parâmetros
- set
-
Array of signals to wait for.
- siginfo
-
The siginfo is set to an array containing informations about the signal. See pcntl_sigwaitinfo().
- seconds
-
Timeout in seconds.
- nanoseconds
-
Timeout in nanoseconds.
Valor Retornado
On success, pcntl_sigtimedwait() returns a signal number.
Veja Também
- pcntl_sigprocmask() - Sets and retrieves blocked signals
- pcntl_sigwaitinfo() - Waits for signals
pcntl_sigtimedwait
kak dot serpom dot po dot yaitsam at gmail dot com
26-Jul-2009 08:50
26-Jul-2009 08:50
