lock_wait
- Versions
- 7
lock_wait($name, $delay = 30)
Wait for a lock to be available.
This function may be called in a request that fails to acquire a desired lock. This will block further execution until the lock is available or the specified delay in seconds is reached. This should not be used with locks that are acquired very frequently, since the lock is likely to be acquired again by a different request during the sleep().
Parameters
$name The name of the lock.
$delay The maximum number of seconds to wait, as an integer.
Return value
TRUE if the lock holds, FALSE if it is available.
Related topics
Code
includes/lock.inc, line 200
<?php
function lock_wait($name, $delay = 30) {
$delay = (int) $delay;
while ($delay--) {
// This function should only be called by a request that failed to get a
// lock, so we sleep first to give the parallel request a chance to finish
// and release the lock.
sleep(1);
if (lock_may_be_available($name)) {
// No longer need to wait.
return FALSE;
}
}
// The caller must still wait longer to get the lock.
return TRUE;
}
?>Login or register to post comments 