Edit report at https://bugs.php.net/bug.php?id=39168&edit=1
ID: 39168
Comment by: jhill9693 at gmail dot com
Reported by: s dot s at terra dot com dot br
Summary: Semaphore acquire timeout
Status: Open
Type: Feature/Change Request
Package: Semaphore related
Operating System: Freebsd 6
PHP Version: 5.1.6
Block user comment: N
Private report: N
New Comment:
You can do this with pcntl_alarm() and pcntl_signal() to send yourself the
SIGALRM POSIX signal after a
number of seconds.
<?php
declare(ticks = 1);
function handle_timeout() {
throw new Exception('Semaphore acquire timeout');
}
pcntl_signal(SIGALRM, 'handle_timeout');
$key = ftok(__FILE__, 'R');
$sem = sem_get($key);
pcntl_alarm(10);
sem_acquire($sem);
pcntl_alarm(0);
echo 'Semaphore acquired :)';
sem_release($sem);
Previous Comments:
------------------------------------------------------------------------
[2006-10-16 16:55:21] s dot s at terra dot com dot br
Description:
------------
Should be great if there was an optional parameter (default = 0) in function
sem_acquire to pass a timeout (in seconds).
Maybe send a warning no semaphore timeout ;)
Reproduce code:
---------------
Something like
<?php
$key = ftok(__FILE__, 'R');
$sem = sem_get($key);
if(sem_acquire($sem, 10)) {
echo 'Semaphore acquire failed. Timeout?';
}
else {
echo 'Semaphore acquired :)';
sem_release($sem);
}
?>
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=39168&edit=1