protected function acquireLock($name, $timeout = 0)
{
$file = fopen($this->getLockFilePath($name), 'w+');
if ($file === false) {
return false;
}
if ($this->fileMode !== null) {
@chmod($this->getLockFilePath($name), $this->fileMode);
}
$waitTime = 0;
while (!flock($file, LOCK_EX | LOCK_NB)) {
$waitTime++;
if ($waitTime > $timeout) {
fclose($file);
return false;
}
sleep(1);
}
$this->_files[$name] = $file;
return true;
}