| Package | flash.concurrent | 
| Class | public final class Mutex | 
| Inheritance | Mutex  Object | 
| Language version: | ActionScript 3.0 | 
| Runtime version: | AIR 3.5 | 
shareable property is true). However, a Mutex can be 
 used to manage workers' access to any shareable resource, such as an AIR native 
 extension or a filesystem file. No matter what the resource, the purpose of 
 the mutex is to ensure that only one set of code accesses the resource at a time.
 
 A mutex manages access using the concept of resource ownership. At any time a single mutex is "owned" by at most one worker. When ownership of a mutex switches from one worker to another the transision is atomic. This guarantees that it will never be possible for more than one worker to take ownership of the mutex. As long as code in a worker only operates on a shared resource when that worker owns the mutex, you can be certain that there will never be a conflict from multiple workers.
Use the tryLock() method to take ownership of the mutex if 
 it is available. Use the lock() method to pause the current 
 worker's execution until the mutex is available, then take ownership of the 
 mutex. Once the current worker has ownership of the mutex, it can safely 
 operate on the shared resource. When those operations are complete, call the 
 unlock() method to release the mutex. At that point the current 
 worker should no longer access the shared resource.
The Mutex class is one of the special object types that are shared 
 between workers rather than copied between them. When you pass a mutex from 
 one worker to another worker either by calling the Worker object's 
 setSharedProperty() method or by using a MessageChannel object, 
 both workers have a reference to the same Mutex object in the runtime's memory.
See also
| Property | Defined by | ||
|---|---|---|---|
|  | constructor : Object 
	 A reference to the class object or constructor function for a given object instance. | Object | |
| isSupported : Boolean [static][read-only]
     Indicates whether the use of the Mutex class is supported for the current platform. | Mutex | ||
|  | prototype : Object [static]
	 A reference to the prototype object of a class or function object. | Object | |
| Method | Defined by | ||
|---|---|---|---|
| 
Mutex() 
     Creates a new Mutex instance. | Mutex | ||
|  | 
	 Indicates whether an object has a specified property defined. | Object | |
|  | 
	 Indicates whether an instance of the Object class is in the prototype chain of the object specified 
	 as the parameter. | Object | |
| 
     Pauses execution of the current worker until this mutex is available and 
     then takes ownership of the mutex. | Mutex | ||
|  | 
	 Indicates whether the specified property exists and is enumerable. | Object | |
|  | 
     Sets the availability of a dynamic property for loop operations. | Object | |
|  | 
	 Returns the string representation of this object, formatted according to locale-specific conventions. | Object | |
|  | 
	 Returns the string representation of the specified object. | Object | |
| 
     Acquires ownership of the mutex if it is available. | Mutex | ||
| 
     Releases ownership of this mutex, allowing any worker to acquire it and 
     perform work on the associated resource. | Mutex | ||
|  | 
	 Returns the primitive value of the specified object. | Object | |
| isSupported | property | 
isSupported:Boolean  [read-only]
| Language version: | ActionScript 3.0 | 
| Runtime version: | AIR 3.5 | 
Indicates whether the use of the Mutex class is supported for the current platform.
This property is true if the current platform supports mutexes; otherwise
     false.
    public static function get isSupported():Boolean
| Mutex | () | constructor | 
public function Mutex()
| Language version: | ActionScript 3.0 | 
| Runtime version: | AIR 3.5 | 
Creates a new Mutex instance.
| Error — if the mutex could not be initialized. | 
| lock | () | method | 
public function lock():void
| Language version: | ActionScript 3.0 | 
| Runtime version: | AIR 3.5 | 
     Pauses execution of the current worker until this mutex is available and 
     then takes ownership of the mutex. If another worker owns the 
     mutex when lock() is called, the calling worker's execution thread pauses at the 
     lock() call and the worker is added to the queue of ownership 
     requests. Once the calling worker acquires the mutex, the worker's 
     execution continues with the line of code following the 
     lock() call.
     
     
Once the current worker has ownership of the mutex, it can safely 
     operate on the shared resource. When those operations are complete, call 
     the unlock() method to release the mutex. At that point the 
     current worker should no longer access the shared resource.
Internally, a mutex keeps a count of the number of lock requests it 
     has received. The mutex must receive the same number of unlock requests 
     before it is completely released. If code in the worker that owns the 
     mutex locks it again (by calling the lock() method) the 
     internal lock count increases by one. You must call the 
     unlock() method as many times as the number of lock requests 
     to release ownership of the mutex.
When multiple workers are waiting for a mutex, the mutex gives priority to assigning ownership to the longest-waiting worker. However, scheduling of worker threads is managed by the host operating system so there is no guarantee of a particular code execution order across workers.
| tryLock | () | method | 
public function tryLock():Boolean
| Language version: | ActionScript 3.0 | 
| Runtime version: | AIR 3.5 | 
     Acquires ownership of the mutex if it is available. If another worker 
     already owns the mutex or another worker has called the lock() 
     method and is waiting to acquire the mutex, the mutex is not available. 
     In that case, calling this method returns false and code 
     execution continues immediately.
     
     
Once the current worker has ownership of the mutex, it can safely 
     operate on the shared resource. When those operations are complete, call 
     the unlock() method to release the mutex. At that point the 
     current worker should no longer access the shared resource.
When multiple workers are waiting for a mutex, the mutex gives priority to assigning ownership to the longest-waiting worker. However, scheduling of worker threads is managed by the host operating system so there is no guarantee of a particular code execution order across workers.
Returns| Boolean—trueif the mutex was available (and is now owned 
     by the current worker), orfalseif the current worker did 
     not acquire ownership of the mutex. | 
| unlock | () | method | 
public function unlock():void
| Language version: | ActionScript 3.0 | 
| Runtime version: | AIR 3.5 | 
Releases ownership of this mutex, allowing any worker to acquire it and perform work on the associated resource.
Internally, a mutex keeps a count of the number of lock requests it 
     has received. Code in a worker must call the unlock() 
     method as many times as the number of lock requests in order to release 
     ownership of the mutex.
| Error — when the current worker 
             doesn't own the mutex. | 
