MySQL / MariaDB locking factory.
More...
|
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
|
|
◆ __construct()
core\lock\mysql_lock_factory::__construct |
( |
| $type | ) |
|
◆ 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 |
( |
lock | $lock, |
|
|
| $maxlifetime = 86400 ) |
Extend a lock that was previously obtained with @lock.
- Deprecated
- since Moodle 3.10.
- Parameters
-
lock | $lock | - a lock obtained from this factory. |
int | $maxlifetime | - the new lifetime for the lock (in seconds). |
- Return values
-
boolean | - true if the lock was extended. |
Implements core\lock\lock_factory.
◆ 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
-
◆ 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 |
( |
| ) |
|
Multiple locks for the same resource can NOT be held by a single process.
Hard coded to false and workaround inconsistent support in different versions of MySQL / MariaDB.
- Deprecated
- since Moodle 3.10.
- Return values
-
Implements core\lock\lock_factory.
◆ 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:
- lib/classes/lock/mysql_lock_factory.php