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.

Attachment: signature.asc
Description: PGP signature

Reply via email to