Check first, then wait

This commit is contained in:
Ferdinand Kuhl 2022-05-16 12:08:39 +02:00
parent d294df5079
commit 24283b795f

View file

@ -74,13 +74,13 @@ class SessionLockRequestComponent implements ComponentInterface
$this->logger->debug('SessionLock: Try to get "' . $key . '"'); $this->logger->debug('SessionLock: Try to get "' . $key . '"');
$timedOut = \time() + $this->secondsToWait; $timedOut = \time() + $this->secondsToWait;
while (!$lock->acquire()) { while (!$lock->acquire()) {
\usleep(100000);
if (\time() >= $timedOut) { if (\time() >= $timedOut) {
throw new LockAcquiringException( throw new LockAcquiringException(
'Could not acquire the lock for "' . $key . '" in ' . $this->secondsToWait . ' seconds.', 'Could not acquire the lock for "' . $key . '" in ' . $this->secondsToWait . ' seconds.',
1652687960 1652687960
); );
} }
\usleep(100000);
} }
$this->logger->debug('SessionLock: Acquired "' . $key . '"'); $this->logger->debug('SessionLock: Acquired "' . $key . '"');
} }