protected function acquire_writers_mutex()
{
if (!$this->mutex_acquired) {
if (empty($this->writers_mutex)) {
$this->writers_mutex = sem_get($this->writers_mutex_key, 1, 0777, 1);
}
if (empty($this->writers_mutex)) {
return false;
}
ignore_user_abort(true);
//don't hang with semaphore, please :)
set_time_limit(30);
if (!sem_acquire($this->writers_mutex)) {
$this->err_log[] = 'Can not acquire writers mutex';
return false;
}
$this->mutex_acquired = true;
}
return true;
}