private function lock(string
$name = null, bool
$blocking = false
): bool
{ if (!
class_exists(SemaphoreStore::
class)) { throw new LogicException('To enable the locking feature you must install the symfony/lock component. Try running "composer require symfony/lock".'
);
} if (null !==
$this->lock
) { throw new LogicException('A lock is already in place.'
);
} if (SemaphoreStore::
isSupported()) { $store =
new SemaphoreStore();
} else { $store =
new FlockStore();
} $this->lock =
(new LockFactory($store))->
createLock($name ?:
$this->
getName());
if (!
$this->lock->
acquire($blocking)) { $this->lock = null;
return false;
}