12345678910111213141516171819202122232425262728293031323334353637 |
- package sys.thread;
- import cs.system.threading.Monitor;
- @:coreApi
- @:access(sys.thread.Mutex)
- class Condition {
- final object:cs.system.Object;
- public function new():Void {
- this.object = new cs.system.Object();
- }
- public function acquire():Void {
- Monitor.Enter(object);
- }
- public function tryAcquire():Bool {
- return Monitor.TryEnter(object);
- }
- public function release():Void {
- Monitor.Exit(object);
- }
- public function wait():Void {
- Monitor.Wait(object);
- }
- public function signal():Void {
- Monitor.Pulse(object);
- }
- public function broadcast():Void {
- Monitor.PulseAll(object);
- }
- }
|