Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. LockableTrait.php

function LockableTrait::lock

Locks a command.

File

vendor/symfony/console/Command/LockableTrait.php, line 34

Class

LockableTrait
Basic lock feature for commands.

Namespace

Symfony\Component\Console\Command

Code

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 (null === $this->lockFactory) {
        if (SemaphoreStore::isSupported()) {
            $store = new SemaphoreStore();
        }
        else {
            $store = new FlockStore();
        }
        $this->lockFactory = new LockFactory($store);
    }
    $this->lock = $this->lockFactory
        ->createLock($name ?: $this->getName());
    if (!$this->lock
        ->acquire($blocking)) {
        $this->lock = null;
        return false;
    }
    return true;
}

API Navigation

  • Drupal Core 11.1.x
  • Topics
  • Classes
  • Functions
  • Constants
  • Globals
  • Files
  • Namespaces
  • Deprecated
  • Services
RSS feed
Powered by Drupal