downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | conferences | my php.net

search for in the

pcntl_exec> <PCNTL Funktionen
[edit] Last updated: Fri, 17 May 2013

view this page in

pcntl_alarm

(PHP 4 >= 4.3.0, PHP 5)

pcntl_alarm Setzt einen Zeitschalter für die Auslieferung eines Signals

Beschreibung

int pcntl_alarm ( int $seconds )

Die Funktion pcntl_alarm() erzeugt eine Zeitschaltuhr, die ein SIGALRM Signal an den Prozess senden wird, nachdem seconds Sekunden vergangen sind. Wenn seconds Null ist wird kein neuer Timer erzeugt. Jeder Aufruf von pcntl_alarm() wird jeden zuvor erzeugten Zeitschalter abbrechen.

pcntl_alarm() wird die Zeitangabe in Sekunden zurückgeben, die ein zuvor angesetzter Zeitschalter übrig hatte, bevor er ausgeliefert werden sollte, oder 0, wenn es keinen vorher angesetzten Zeitschalter gab.



add a note add a note User Contributed Notes pcntl_alarm - [2 notes]
up
0
j at ukr-info dot net
7 years ago
<?php
   
declare(ticks = 1);

    function
signal_handler($signal) {
        print
"Caught SIGALRM\n";
       
pcntl_alarm(5);
    }

   
pcntl_signal(SIGALRM, "signal_handler", true);
   
pcntl_alarm(5);

    for(;;) {
    }

?>
up
-2
thessoro at gmail dot com
2 years ago
If your process uses SIGALRM and sleep() at the same time, the alarm set could make sleep() to return prematurely.

To avoid this and ensure your process waits a number of seconds you could use a function or class similar to this one:

<?php
class SleepWorkaroundForSIGALRM {
    private
$time;
    function
__construct($seconds) {
       
$this->time = time() + $seconds;
        while (
$this->time >= time()) {
           
sleep(1);
        }
    }   
?>

 
show source | credits | sitemap | contact | advertising | mirror sites