Moodle PHP Documentation 4.2
Moodle 4.2.8 (Build: 20240610) (2d41ac46f45)
core\lock\lock Class Reference

Class representing a lock. More...

Public Member Functions

 __construct ($key, $factory)
 Construct a lock containing the unique key required to release it.
 
 __destruct ()
 Print debugging if this lock falls out of scope before being released.
 
 extend ($maxlifetime=86400)
 Extend the lifetime of this lock.
 
 get_key ()
 Return the unique key representing this lock.
 
 init_factory (lock_factory $factory)
 Sets the lock factory that owns a lock.
 
 release ()
 Release this lock.
 

Protected Attributes

string $caller = 'unknown'
 $caller Where was this called from? Stored for when a warning is shown
 
lock_factory $factory
 $factory The factory that generated this lock
 
string int $key = ''
 $key A unique key representing a held lock
 
bool $released
 $released Has this lock been released? If a lock falls out of scope without being released - show a warning.
 

Detailed Description

Class representing a lock.

The methods available for a specific lock type are only known by it's factory.

License
http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later

Constructor & Destructor Documentation

◆ __construct()

core\lock\lock::__construct ( $key,
$factory )

Construct a lock containing the unique key required to release it.

Parameters
mixed$key- The lock key. The type of this is up to the lock_factory being used. For file locks this is a file handle. For MySQL this is a string.
lock_factory$factory- The factory that generated this lock.

Member Function Documentation

◆ extend()

core\lock\lock::extend ( $maxlifetime = 86400)

Extend the lifetime of this lock.

Not supported by all factories.

Deprecated
since Moodle 3.10.
Parameters
int$maxlifetime- the new lifetime for the lock (in seconds).
Return values
bool

◆ get_key()

core\lock\lock::get_key ( )

Return the unique key representing this lock.

Return values
string|intlock key.

◆ init_factory()

core\lock\lock::init_factory ( lock_factory $factory)

Sets the lock factory that owns a lock.

This function should not be called under normal use. It is intended only for cases like {

See also
timing_wrapper_lock_factory} where we wrap a lock factory.

When used, it should be called immediately after constructing the lock.

Parameters
lock_factory$factoryNew lock factory that owns this lock

◆ release()

core\lock\lock::release ( )

Release this lock.

Return values
bool

The documentation for this class was generated from the following file: