diff --git a/std/java/_std/haxe/atomic/AtomicBool.hx b/std/java/_std/haxe/atomic/AtomicBool.hx index 58973a8b0e3..2b98caabc4a 100644 --- a/std/java/_std/haxe/atomic/AtomicBool.hx +++ b/std/java/_std/haxe/atomic/AtomicBool.hx @@ -20,7 +20,7 @@ abstract AtomicBool(AtomicBoolean) { } public inline function exchange(value:Bool):Bool { - return this.getAndSet(Bool); + return this.getAndSet(value); } public inline function load():Bool { diff --git a/tests/unit/src/unitstd/haxe/atomic/AtomicBool.unit.hx b/tests/unit/src/unitstd/haxe/atomic/AtomicBool.unit.hx new file mode 100644 index 00000000000..0274f51b16f --- /dev/null +++ b/tests/unit/src/unitstd/haxe/atomic/AtomicBool.unit.hx @@ -0,0 +1,18 @@ +#if (target.atomics) +var a = new haxe.atomic.AtomicBool(true); + +a.load() == true; +a.store(false) == false; +a.load() == false; + +a.compareExchange(false, true) == false; +a.load() == true; + +a.compareExchange(false, false) == true; +a.load() == true; + +a.exchange(true) == true; +a.load() == true; +#else +0 == 0; // prevent "no assertions" warning +#end