Hi,
Is there a way I can stop "current" from being optimized out without using "volatile"? The compiler is suggesting I replace "volatile" with "synchronized" but I don't want it synchronized?
Would a memory barrier work? shared n = new int(value); for (;;) { volatile auto current = payload; // payload is a shared variableif (current == payload) { // just to make sure we copied a complete value from
if (current is null) { if (cas(&payload, current, n)) { return true; } } } } Thanks! -Rory