Is core.internal.atomic.atomicFetchAdd implementation really lock free?
max haughton
maxhaton at gmail.com
Sat Dec 3 03:42:01 UTC 2022
On Wednesday, 30 November 2022 at 00:35:55 UTC, 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.
I expect atomic ops to provide correct memory consistency, and
preferably be atomic where the platform allows it.
More information about the Digitalmars-d
mailing list