Consensus: data-race freedom as default for glibc code
Florian Weimer
fweimer@redhat.com
Mon Nov 24 14:29:00 GMT 2014
On 11/21/2014 11:27 PM, Torvald Riegel wrote:
>> I agree with the idea, but I don't particularly like the term âdata race
>> freedomâ.
>
> That's what the language standard and the language committee use, so
> that's why I picked that term.
I know, it's just that it's sometimes used differently in the sense that
you don't know precisely what value you will read, but it's from a
specific set, and the algorithm can cope with any chosen value.
> What would you propose to improve the wording? Stress that this
> statement is about glibc's implementation only, not making a statement
> about how glibc is used?
Perhaps something like this?
> * Parallel algorithms implemented in glibc itself will be free from
> data races (as defined by C11 and its memory model) by default.
> A data race is if a possible execution contains two
> memory accesses, at least one of them is a write, at least one
> is not an atomic operation, and both are not ordered by
> happens-before. The transition to data-race freedom will be
> incremental for existing code, but new code should be
> data-race-free. If we decide to allow a data race in a certain
> situation because we reason that it is benign, this must get
> documented and needs closer inspection, repeatedly (e.g., to
> check that the generated code is okay). To avoid data races, use
> locks or atomic operations."
--
Florian Weimer / Red Hat Product Security
More information about the Libc-alpha
mailing list