(PHP 5 >= 5.3.0, PHP 7, PHP 8)
pcntl_sigwaitinfo — Espera una señal
La función pcntl_sigwaitinfo() suspende su ejecución hasta
la recepción de una de las señales indicadas en signals
.
Si una de las señales ya está en espera (i.e., bloqueada por
pcntl_sigprocmask()),
pcntl_sigwaitinfo() se termina inmediatamente.
signals
Un array de señales a esperar.
info
El parámetro info
recibe un array
que contiene la información sobre la señal.
Los siguientes elementos están siempre disponibles para todas las señales:
Los siguientes elementos pueden estar disponibles para la señal
SIGCHLD
:
Los siguientes elementos pueden estar disponibles para las señales
SIGILL
,
SIGFPE
, SIGSEGV
y
SIGBUS
:
Los siguientes elementos pueden estar disponibles para la señal
SIGPOLL
:
Devuelve un número de señal en caso de éxito, o false
en caso de error.
Versión | Descripción |
---|---|
8.4.0 |
Se lanza una excepción ValueError si el signal
está vacío.
|
8.4.0 |
Se lanza una excepción TypeError si el valor de signal
no es un int.
|
8.4.0 |
Se lanza una excepción ValueError si el valor de signal
es inválido.
|
Ejemplo #1 Ejemplo con pcntl_sigwaitinfo()
<?php
echo "Bloquea la señal SIGHUP\n";
pcntl_sigprocmask(SIG_BLOCK, array(SIGHUP));
echo "Envía la señal SIGHUP a sí mismo\n";
posix_kill(posix_getpid(), SIGHUP);
echo "Espera señales\n";
$info = array();
pcntl_sigwaitinfo(array(SIGHUP), $info);
?>