Lock
abstract class Lock implements Lock
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.
Get the "available at" UNIX timestamp.
If the given value is an interval, convert it to a DateTime instance.
Given a start time, format the total run time for human readability.
Create a new lock instance.
Attempt to acquire the lock.
Release the lock.
Return 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.
Attempt to refresh the lock for the given number of seconds.
Get the number of seconds until the lock expires.
Return the current owner of the lock.
Determine if the lock is currently held by any process.
Determine whether this lock is allowed to release the lock in the driver.
Determine whether this lock is owned by the given identifier.
Specify the number of milliseconds to sleep in between blocked lock acquisition attempts.
Details
in
InteractsWithTime at line 17
protected int
secondsUntil(DateInterval|DateTimeInterface|int $delay)
Get the number of seconds until the given DateTime.
in
InteractsWithTime at line 29
protected int
availableAt(DateInterval|DateTimeInterface|int|null $delay = 0)
Get the "available at" UNIX timestamp.
in
InteractsWithTime at line 41
protected DateTimeInterface|int
parseDateInterval(DateInterval|DateTimeInterface|int|null $delay)
If the given value is an interval, convert it to a DateTime instance.
in
InteractsWithTime at line 57
protected int
currentTime()
Get the current system time as a UNIX timestamp.
in
InteractsWithTime at line 65
protected string
runTimeForHumans(float $startTime, float|null $endTime = null)
Given a start time, format the total run time for human readability.
at line 44
__construct(string $name, int $seconds, string|null $owner = null)
Create a new lock instance.
at line 58
abstract bool
acquire()
Attempt to acquire the lock.
at line 63
abstract bool
release()
Release the lock.
at line 68
abstract protected string|null
getCurrentOwner()
Return the owner value written into the driver for this lock.
at line 73
mixed
get(callable|null $callback = null)
Attempt to acquire the lock.
at line 101
mixed
block(int $seconds, callable|null $callback = null)
Attempt to acquire the lock for the given number of seconds.
at line 143
bool
refresh(int|null $seconds = null)
Attempt to refresh the lock for the given number of seconds.
at line 153
float|null
getRemainingLifetime()
Get the number of seconds until the lock expires.
at line 161
string
owner()
Return the current owner of the lock.
at line 169
bool
isLocked()
Determine if the lock is currently held by any process.
at line 177
bool
isOwnedByCurrentProcess()
Determine whether this lock is allowed to release the lock in the driver.
at line 185
bool
isOwnedBy(string|null $owner)
Determine whether this lock is owned by the given identifier.
at line 193
Lock
betweenBlockedAttemptsSleepFor(int $milliseconds)
Specify the number of milliseconds to sleep in between blocked lock acquisition attempts.