Semaphore.hx 505 B

1234567891011121314151617181920212223
  1. package sys.thread;
  2. @:noDoc
  3. @:coreApi
  4. class Semaphore {
  5. var m:Dynamic;
  6. public function new(value:Int) {
  7. m = untyped __global__.__hxcpp_semaphore_create(value);
  8. }
  9. public function acquire():Void {
  10. untyped __global__.__hxcpp_semaphore_acquire(m);
  11. }
  12. public function tryAcquire(?timeout:Float):Bool {
  13. return untyped __global__.__hxcpp_semaphore_try_acquire(m, timeout == null ? 0 : (timeout:Float));
  14. }
  15. public function release():Void {
  16. untyped __global__.__hxcpp_semaphore_release(m);
  17. }
  18. }