|
moodle_database | $db |
| $db Hold a reference to the global $DB
|
|
int | $dblockid = -1 |
| $dblockid - used as a namespace for these types of locks (separate from session locks)
|
|
array | $openlocks = array() |
| $openlocks - List of held locks - used by auto-release
|
|
string | $type |
| $type Used to prefix lock keys
|
|
|
static array | $lockidcache = array() |
| $lockidcache - static cache for string -> int conversions required for pg advisory locks.
|
|
◆ __construct()
core\lock\postgres_lock_factory::__construct |
( |
|
$type | ) |
|
◆ auto_release()
core\lock\postgres_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\postgres_lock_factory::extend_lock |
( |
lock |
$lock, |
|
|
|
$maxlifetime = 86400 |
|
) |
| |
Extend a lock that was previously obtained with @lock.
- 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_index_from_key()
core\lock\postgres_lock_factory::get_index_from_key |
( |
|
$key | ) |
|
|
protected |
This function generates the unique index for a specific lock key.
Once an index is assigned to a key, it never changes - so this is statically cached.
- Parameters
-
- Return values
-
- Exceptions
-
◆ get_lock()
core\lock\postgres_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_instance_id()
core\lock\postgres_lock_factory::get_unique_db_instance_id |
( |
| ) |
|
|
protected |
Calculate a unique instance id based on the database name and prefix.
- Return values
-
◆ is_available()
core\lock\postgres_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\postgres_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\postgres_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\postgres_lock_factory::supports_recursion |
( |
| ) |
|
Multiple locks for the same resource can be held by a single process.
- Return values
-
boolean | - Defer to the DB driver. |
Implements core\lock\lock_factory.
◆ supports_timeout()
core\lock\postgres_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: