Semaphore.hx 577 B

12345678910111213141516171819202122232425
  1. package sys.thread;
  2. import java.util.concurrent.TimeUnit;
  3. @:coreApi
  4. @:native('haxe.java.vm.Semaphore')
  5. class Semaphore {
  6. final native:java.util.concurrent.Semaphore;
  7. public function new(value:Int):Void {
  8. this.native = new java.util.concurrent.Semaphore(value);
  9. }
  10. public function acquire():Void {
  11. native.acquire();
  12. }
  13. public function tryAcquire(?timeout:Float):Bool {
  14. return timeout == null ? native.tryAcquire() : native.tryAcquire(haxe.Int64.fromFloat(timeout * 1000000000),TimeUnit.NANOSECONDS);
  15. }
  16. public function release():Void {
  17. native.release();
  18. }
  19. }