dismiss Step into the future! Click here to switch to the beta php.net site
downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | conferences | my php.net

search for in the

pcntl_errno> <PCNTL Functions
[edit] Last updated: Fri, 28 Jun 2013

view this page in

pcntl_alarm

(PHP 4 >= 4.3.0, PHP 5)

pcntl_alarmSet an alarm clock for delivery of a signal

Description

int pcntl_alarm ( int $seconds )

Creates a timer that will send a SIGALRM signal to the process after the given number of seconds. Any call to pcntl_alarm() will cancel any previously set alarm.

Parameters

seconds

The number of seconds to wait. If seconds is zero, no new alarm is created.

Return Values

Returns the time in seconds that any previously scheduled alarm had remaining before it was to be delivered, or 0 if there was no previously scheduled alarm.



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 | stats | sitemap | contact | advertising | mirror sites