[PATCH] Fix rwlock stall with PREFER_WRITER_NONRECURSIVE_NP (bug 23861)
Carlos O'Donell
carlos@redhat.com
Tue Dec 11 16:21:00 GMT 2018
On 12/11/18 11:16 AM, Andreas Schwab wrote:
> On Dez 11 2018, Florian Weimer <fweimer@redhat.com> wrote:
>
>> * Andreas Schwab:
>>
>>> On Dez 11 2018, Florian Weimer <fweimer@redhat.com> wrote:
>>>
>>>> * Andreas Schwab:
>>>>
>>>>>> No, without atomics, the code has a data race and undefined behavior.
>>>>>
>>>>> In which way? There is a single setter, and it doesn't matter how long
>>>>> the thread takes to see the transition from zero to non-zero.
>>>>
>>>> | The execution of a program contains a data race if it contains two
>>>> | conflicting actions in different threads,
>>>
>>> In which way do the actions conflict?
>>
>> | Two expression evaluations conflict if one of them modifies a memory
>> | location and the other one reads or modifies the same memory location.
>
> And how is that a problem in this pariticular case?
Some data races can be benign, but they are still data races and they
still render the program invalid (undefined behvaiour).
Use relaxed MO loads/stores if you need them.
--
Cheers,
Carlos.
More information about the Libc-alpha
mailing list