Abstract Class yii\mutex\Mutex
Inheritance | yii\mutex\Mutex » yii\base\Component » yii\base\Object |
---|---|
Implements | yii\base\Configurable |
Subclasses | yii\mutex\DbMutex, yii\mutex\FileMutex, yii\mutex\MysqlMutex |
Available since version | 2.0 |
Source Code | https://github.com/yiisoft/yii2/blob/master/framework/mutex/Mutex.php |
Mutex component allows mutual execution of the concurrent processes, preventing "race conditions".
This is achieved by using "lock" mechanism. Each possibly concurrent thread cooperates by acquiring the lock before accessing the corresponding data.
Usage example:
if ($mutex->acquire($mutexName)) {
// business logic execution
} else {
// execution is blocked!
}
This class is a base one, which should be extended in order to implement actual lock mechanism.
Public Properties
Property | Type | Description | Defined By |
---|---|---|---|
$autoRelease | boolean | Whether all locks acquired in this process (i.e. local locks) must be released automagically before finishing script execution. | yii\mutex\Mutex |
$behaviors | yii\base\Behavior[] | List of behaviors attached to this component | yii\base\Component |
Public Methods
Method | Description | Defined By |
---|---|---|
__call() | Calls the named method which is not a class method. | yii\base\Object |
__clone() | This method is called after the object is created by cloning an existing one. | yii\base\Component |
__construct() | Constructor. | yii\base\Object |
__get() | Returns the value of an object property. | yii\base\Object |
__isset() | Checks if a property is set, i.e. defined and not null. | yii\base\Object |
__set() | Sets value of an object property. | yii\base\Object |
__unset() | Sets an object property to null. | yii\base\Object |
acquire() | Acquires lock by given name. | yii\mutex\Mutex |
attachBehavior() | Attaches a behavior to this component. | yii\base\Component |
attachBehaviors() | Attaches a list of behaviors to the component. | yii\base\Component |
behaviors() | Returns a list of behaviors that this component should behave as. | yii\base\Component |
canGetProperty() | Returns a value indicating whether a property can be read. | yii\base\Object |
canSetProperty() | Returns a value indicating whether a property can be set. | yii\base\Object |
className() | Returns the fully qualified name of this class. | yii\base\Object |
detachBehavior() | Detaches a behavior from the component. | yii\base\Component |
detachBehaviors() | Detaches all behaviors from the component. | yii\base\Component |
ensureBehaviors() | Makes sure that the behaviors declared in behaviors() are attached to this component. | yii\base\Component |
getBehavior() | Returns the named behavior object. | yii\base\Component |
getBehaviors() | Returns all behaviors attached to this component. | yii\base\Component |
hasEventHandlers() | Returns a value indicating whether there is any handler attached to the named event. | yii\base\Component |
hasMethod() | Returns a value indicating whether a method is defined. | yii\base\Object |
hasProperty() | Returns a value indicating whether a property is defined. | yii\base\Object |
init() | Initializes the mutex component. | yii\mutex\Mutex |
off() | Detaches an existing event handler from this component. | yii\base\Component |
on() | Attaches an event handler to an event. | yii\base\Component |
release() | Release acquired lock. This method will return false in case named lock was not found. | yii\mutex\Mutex |
trigger() | Triggers an event. | yii\base\Component |
Protected Methods
Method | Description | Defined By |
---|---|---|
acquireLock() | This method should be extended by concrete mutex implementations. Acquires lock by given name. | yii\mutex\Mutex |
releaseLock() | This method should be extended by concrete mutex implementations. Releases lock by given name. | yii\mutex\Mutex |
Property Details
Whether all locks acquired in this process (i.e. local locks) must be released automagically before finishing script execution. Defaults to true. Setting this property to true means that all locks acquire in this process must be released in any case (regardless any kind of errors or exceptions).
Method Details
Acquires lock by given name.
boolean acquire( $name, $timeout = 0 ) | ||
$name | string | Of the lock to be acquired. Must be unique. |
$timeout | integer | To wait for lock to be released. Defaults to zero meaning that method will return false immediately in case lock was already acquired. |
return | boolean | Lock acquiring result. |
---|
This method should be extended by concrete mutex implementations. Acquires lock by given name.
boolean acquireLock( $name, $timeout = 0 ) | ||
$name | string | Of the lock to be acquired. |
$timeout | integer | To wait for lock to become released. |
return | boolean | Acquiring result. |
---|
Initializes the mutex component.
void init( ) |
Release acquired lock. This method will return false in case named lock was not found.
boolean release( $name ) | ||
$name | string | Of the lock to be released. This lock must be already created. |
return | boolean | Lock release result: false in case named lock was not found.. |
---|
This method should be extended by concrete mutex implementations. Releases lock by given name.
boolean releaseLock( $name ) | ||
$name | string | Of the lock to be released. |
return | boolean | Release result. |
---|