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 — Attend un signal dans un délai donné
Description
int pcntl_sigtimedwait
( array
$set
[, array &$siginfo
[, int $seconds = 0
[, int $nanoseconds = 0
]]] )
La fonction pcntl_sigtimedwait() opère exactement comme
pcntl_sigwaitinfo() hormis le fait qu'elle prend deux
paramètres supplémentaires : seconds et
nanoseconds, qui établissent une durée maximale
d'attente.
Liste de paramètres
-
set -
Une liste de signaux à attendre.
-
siginfo -
Le paramètre
siginforeçoit les informations du signal, sous forme de tableau. Voyez pcntl_sigwaitinfo(). -
seconds -
Délai d'attente maximal en secondes.
-
nanoseconds -
Délai d'attente maximal en nanosecondes.
Valeurs de retour
En cas de réussite, pcntl_sigtimedwait() retourne un numéro de signal.
Voir aussi
- pcntl_sigprocmask() - Liste et configure les signaux bloqués
- pcntl_sigwaitinfo() - Attend un signal
kak dot serpom dot po dot yaitsam at gmail dot com ¶
3 years ago
