Search moodle.org's
Developer Documentation

See Release Notes

  • Bug fixes for general core bugs in 4.3.x will end 7 October 2024 (12 months).
  • Bug fixes for security issues in 4.3.x will end 21 April 2025 (18 months).
  • PHP version: minimum PHP 8.0.0 Note: minimum PHP version has increased since Moodle 4.1. PHP 8.2.x is supported too.

Differences Between: [Versions 310 and 403] [Versions 311 and 403] [Versions 39 and 403] [Versions 400 and 403] [Versions 401 and 403] [Versions 402 and 403]

(no description)

File Size: 171 lines (5 kb)
Included or required:0 times
Referenced: 0 times
Includes or requires: 0 files

Defines 1 class

mysql_lock_factory:: (10 methods):
  get_unique_db_prefix()
  __construct()
  is_available()
  supports_timeout()
  supports_auto_release()
  supports_recursion()
  get_lock()
  release_lock()
  extend_lock()
  auto_release()


Class: mysql_lock_factory  - X-Ref

MySQL / MariaDB locking factory.

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

param: string $type - Used to prefix lock keys.
return: string

__construct($type)   X-Ref
Lock constructor.

param: string $type - Used to prefix lock keys.

is_available()   X-Ref
Is available.

return: boolean - True if this lock type is available in this environment.

supports_timeout()   X-Ref
Return information about the blocking behaviour of the lock type on this platform.

return: boolean - Defer to the DB driver.

supports_auto_release()   X-Ref
Will this lock type will be automatically released when a process ends.

return: boolean - Via shutdown handler.

supports_recursion()   X-Ref


get_lock($resource, $timeout, $maxlifetime = 86400)   X-Ref
Create and get a lock

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

release_lock(lock $lock)   X-Ref
Release a lock that was previously obtained with @lock.

param: lock $lock - a lock obtained from this factory.
return: boolean - true if the lock is no longer held (including if it was never held).

extend_lock()   X-Ref


auto_release()   X-Ref
Auto release any open locks on shutdown.
This is required, because we may be using persistent DB connections.