Moodle APIs 3.9
Moodle 3.9.13+ (Build: 20220325)
|
Cache Loader supporting locking. More...
Public Member Functions | |
acquire_lock ($key) | |
Acquires a lock for the given key. More... | |
check_lock_state ($key) | |
Checks if the cache loader owns the lock for the given key. More... | |
release_lock ($key) | |
Releases the lock for the given key. More... | |
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.
string | int | $key |
bool | True if the lock could be acquired, false otherwise. |
Implemented in cache_application.
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.
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.