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