Moodle PHP Documentation 4.5
Moodle 4.5dev (Build: 20240606) (d3ae1391abe)
core\lock\mysql_lock_factory Class Reference
Inheritance diagram for core\lock\mysql_lock_factory:
core\lock\lock_factory

Public Member Functions

 __construct ($type)
 Lock constructor.
 
 auto_release ()
 Auto release any open locks on shutdown.
 
 extend_lock ()
 
 get_lock ($resource, $timeout, $maxlifetime=86400)
 Create and get a lock.
 
 is_available ()
 Is available.
 
 release_lock (lock $lock)
 Release a lock that was previously obtained with @lock.
 
 supports_auto_release ()
 Will this lock type will be automatically released when a process ends.
 
 supports_recursion ()
 
 supports_timeout ()
 Return information about the blocking behaviour of the lock type on this platform.
 

Protected Member Functions

 get_unique_db_prefix ($type)
 Return a unique prefix based on the database name and prefix.
 

Protected Attributes

moodle_database $db
 $db Hold a reference to the global $DB
 
string $dbprefix = ''
 $dbprefix - used as a namespace for these types of locks
 
array $openlocks = []
 $openlocks - List of held locks - used by auto-release
 

Detailed Description

Constructor & Destructor Documentation

◆ __construct()

core\lock\mysql_lock_factory::__construct ( $type)

Lock constructor.

Parameters
string$type- Used to prefix lock keys.

Implements core\lock\lock_factory.

Member Function Documentation

◆ auto_release()

core\lock\mysql_lock_factory::auto_release ( )

Auto release any open locks on shutdown.

This is required, because we may be using persistent DB connections.

◆ extend_lock()

core\lock\mysql_lock_factory::extend_lock ( )
Deprecated
since Moodle 3.10.

◆ get_lock()

core\lock\mysql_lock_factory::get_lock ( $resource,
$timeout,
$maxlifetime = 86400 )

Create and get a lock.

Parameters
string$resource- The identifier for the lock. Should use frankenstyle prefix.
int$timeout- The number of seconds to wait for a lock before giving up.
int$maxlifetime- Unused by this lock type.
Return values
boolean- true if a lock was obtained.

Implements core\lock\lock_factory.

◆ get_unique_db_prefix()

core\lock\mysql_lock_factory::get_unique_db_prefix ( $type)
protected

Return a unique prefix based on the database name and prefix.

Parameters
string$type- Used to prefix lock keys.
Return values
string

◆ is_available()

core\lock\mysql_lock_factory::is_available ( )

Is available.

Return values
boolean- True if this lock type is available in this environment.

Implements core\lock\lock_factory.

◆ release_lock()

core\lock\mysql_lock_factory::release_lock ( lock $lock)

Release a lock that was previously obtained with @lock.

Parameters
lock$lock- a lock obtained from this factory.
Return values
boolean- true if the lock is no longer held (including if it was never held).

Implements core\lock\lock_factory.

◆ supports_auto_release()

core\lock\mysql_lock_factory::supports_auto_release ( )

Will this lock type will be automatically released when a process ends.

Return values
boolean- Via shutdown handler.

Implements core\lock\lock_factory.

◆ supports_recursion()

core\lock\mysql_lock_factory::supports_recursion ( )
Deprecated
since Moodle 3.10.

◆ supports_timeout()

core\lock\mysql_lock_factory::supports_timeout ( )

Return information about the blocking behaviour of the lock type on this platform.

Return values
boolean- Defer to the DB driver.

Implements core\lock\lock_factory.


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