Semaphore.hx 497 B

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