Lock
abstract class Lock implements Lock (View source)
Traits
Properties
protected string | $name | The name of the lock. |
|
protected int | $seconds | The number of seconds the lock should be maintained. |
|
protected string | $owner | The scope identifier of this lock. |
|
protected int | $sleepMilliseconds | The number of milliseconds to wait before re-attempting to acquire a lock while blocking. |
Methods
Get the number of seconds until the given DateTime.
If the given value is an interval, convert it to a DateTime instance.
Create a new lock instance.
Attempt to acquire the lock.
Release the lock.
Returns the owner value written into the driver for this lock.
Attempt to acquire the lock.
Attempt to acquire the lock for the given number of seconds.
Returns the current owner of the lock.
Determines whether this lock is allowed to release the lock in the driver.
Specify the number of milliseconds to sleep in between blocked lock acquisition attempts.
Details
protected int
secondsUntil(DateTimeInterface|DateInterval|int $delay)
Get the number of seconds until the given DateTime.
protected int
availableAt(DateTimeInterface|DateInterval|int $delay = 0)
Get the "available at" UNIX timestamp.
protected DateTimeInterface|int
parseDateInterval(DateTimeInterface|DateInterval|int $delay)
If the given value is an interval, convert it to a DateTime instance.
protected int
currentTime()
Get the current system time as a UNIX timestamp.
void
__construct(string $name, int $seconds, string|null $owner = null)
Create a new lock instance.
abstract bool
acquire()
Attempt to acquire the lock.
abstract bool
release()
Release the lock.
abstract protected string
getCurrentOwner()
Returns the owner value written into the driver for this lock.
mixed
get(callable|null $callback = null)
Attempt to acquire the lock.
mixed
block(int $seconds, callable|null $callback = null)
Attempt to acquire the lock for the given number of seconds.
string
owner()
Returns the current owner of the lock.
protected bool
isOwnedByCurrentProcess()
Determines whether this lock is allowed to release the lock in the driver.
$this
betweenBlockedAttemptsSleepFor(int $milliseconds)
Specify the number of milliseconds to sleep in between blocked lock acquisition attempts.