Is core.internal.atomic.atomicFetchAdd implementation really lock free?

claptrap clap at trap.com
Wed Nov 30 00:35:55 UTC 2022


On Wednesday, 30 November 2022 at 00:16:00 UTC, rikki cattermole 
wrote:
> On 30/11/2022 1:12 PM, H. S. Teoh wrote:
>> Hmm, that's weird that the docs would say that.  I've always 
>> been under
>> the impression that core.atomic ops use locks to achieve 
>> atomicity.
>
> No its correct.
>
> As long as the hardware supports atomic operations, it'll use 
> those instructions. It does have a fallback to use a mutex if 
> need be though, which might be where you got that idea from.

It really shouldn't do that IMO. People expect atomic ops to be 
lock-free, it should be compile error if it cant be so.


More information about the Digitalmars-d mailing list