Moodle PHP Documentation 4.5
Moodle 4.5dev (Build: 20240606) (d3ae1391abe)
|
Cache Loader supporting locking. More...
Public Member Functions | |
acquire_lock ($key) | |
Acquires a lock for the given key. | |
check_lock_state ($key) | |
Checks if the cache loader owns the lock for the given key. | |
release_lock ($key) | |
Releases the lock for the given key. | |
Cache Loader supporting locking.
This interface should be given to classes already implementing cache_loader that also wish to support locking. It outlines the required structure for utilising locking functionality when using a cache.
Can be implemented by any class already implementing the cache_loader interface.
cache_loader_with_locking::acquire_lock | ( | $key | ) |
Acquires a lock for the given key.
Please note that this happens automatically if the cache definition requires locking. it is still made a public method so that adhoc caches can use it if they choose. However this doesn't guarantee consistent access. It will become the responsibility of the calling code to ensure locks are acquired, checked, and released.
Prior to Moodle 4,3 this function used to return false if the lock cannot be obtained. It now always returns true, and throws an exception if the lock cannot be obtained.
string | int | $key |
bool | Always returns true (for backwards compatibility) |
moodle_exception | If the lock cannot be obtained after a timeout |
Implemented in cache_application, and cache_disabled.
cache_loader_with_locking::check_lock_state | ( | $key | ) |
Checks if the cache loader owns the lock for the given key.
Please note that this happens automatically if the cache definition requires locking. it is still made a public method so that adhoc caches can use it if they choose. However this doesn't guarantee consistent access. It will become the responsibility of the calling code to ensure locks are acquired, checked, and released.
string | int | $key |
bool | True if this code has the lock, false if there is a lock but this code doesn't have it, null if there is no lock. |
Implemented in cache_application, and cache_disabled.
cache_loader_with_locking::release_lock | ( | $key | ) |
Releases the lock for the given key.
Please note that this happens automatically if the cache definition requires locking. it is still made a public method so that adhoc caches can use it if they choose. However this doesn't guarantee consistent access. It will become the responsibility of the calling code to ensure locks are acquired, checked, and released.
string | int | $key |
bool | True if the lock has been released, false if there was a problem releasing the lock. |
Implemented in cache_application, and cache_disabled.