On Tue, 24 Feb 2015 12:50:53 +0000, Rory wrote: > On Tuesday, 24 February 2015 at 06:48:26 UTC, ketmar wrote: >> but why do you need this? just use `atomicLoad` to get shared variable >> value, it will do the right caching. > > Nice! Thanks. Tested atomicLoad and it is slightly faster for my non > blocking queue.
just in case: by "do the right caching" i meant that this is memory barrier, so compiler will not optimise your `current` away. i.e. the only thing you have to change is this line: volatile auto current = payload; // payload is a shared variable to: auto current = atomicLoad(payload); i reread my answer and found that it may be not so obvious.
signature.asc
Description: PGP signature