123456789101112131415161718192021222324252627282930313233 |
- package sys.thread;
- #if (!target.threaded)
- #error "This class is not available on this target"
- #end
- @:coreApi extern class Semaphore {
- /**
- Creates a new semaphore with an initial value.
- **/
- public function new(value:Int):Void;
- /**
- Locks the semaphore.
- If the value of the semaphore is zero, then the thread will block until it is able to lock the semaphore.
- If the value is non-zero, it is decreased by one.
- **/
- public function acquire():Void;
- /**
- Try to lock the semaphore.
- If the value of the semaphore is zero, `false` is returned, else the value is increased.
- If `timeout` is specified, this function will block until the thread is able to acquire the semaphore, or the timout expires.
- `timeout` is in seconds.
- **/
- public function tryAcquire(?timeout:Float):Bool;
- /**
- Release the semaphore.
- The value of the semaphore is increased by one.
- **/
- public function release():Void;
- }
|