On Sunday, 7 February 2016 at 19:43:23 UTC, rsw0x wrote:
On Sunday, 7 February 2016 at 19:39:27 UTC, rsw0x wrote:
On Sunday, 7 February 2016 at 19:27:19 UTC, Charles Hixson wrote:
If I define a shared ulong variable, is increment an atomic operation?
E.g.

shared ulong t;

...

t++;

It seems as if it ought to be, but it could be split into read, increment, store.

I started off defining a shared struct, but that seems silly, as if the operations defined within a shared struct are synced, then the operation on a shared variable should be synced, but "+=" is clearly stated not to be synchronized, so I'm uncertain.

https://dlang.org/phobos/core_atomic.html#.atomicOp

Just noticed that there's no example.
It's used like

shared(ulong) a;
atomicOp!"+="(a, 1);

Wow, that syntax sucks a lot.

Reply via email to