Is core.internal.atomic.atomicFetchAdd implementation really lock free?
rikki cattermole
rikki at cattermole.co.nz
Wed Nov 30 00:54:22 UTC 2022
On 30/11/2022 1:35 PM, claptrap wrote:
> 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.
It does.
Its really only GDC that supports it with its wide range of esoteric
targets.
But generally speaking if druntime works on a CPU it probably has atomics.
More information about the Digitalmars-d
mailing list