digitalmars.D.bugs - [Issue 15751] New: atomicLoad doesn't return stable result if
- via Digitalmars-d-bugs (39/39) Mar 03 2016 https://issues.dlang.org/show_bug.cgi?id=15751
https://issues.dlang.org/show_bug.cgi?id=15751 Issue ID: 15751 Summary: atomicLoad doesn't return stable result if compiled with -profile Product: D Version: D2 Hardware: x86 OS: Windows Status: NEW Severity: major Priority: P1 Component: dmd Assignee: nobody puremagic.com Reporter: andrey.zherikov gmail.com atomicLoad() doesn't constantly return 0 in the following code if it's compiled with -profile option: ================================= import core.atomic; int main() { shared int s = 0; return atomicLoad(s); } ================================= Compiler: DMD32 D Compiler v2.070.2 Compile command: dmd test.d -oftest_p -profile Test command: pass=0; fail=0; for i in $(seq 1 100); do ./test_p.exe && pass=$((pass+1)) || fail=$((fail+1)); done; echo pass=$pass fail=$fail Test command output (example): pass=89 fail=11 Even adding "atomicStore(s, 0);" right before atomicLoad doesn't guarantee the result: pass=95 fail=5 --
Mar 03 2016