This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH Fix incorrect double-checked locking related to _res_hconf.initialized. [BZ #20477]


On Thu, 2016-08-18 at 10:05 +0200, Florian Weimer wrote:
> On 08/18/2016 09:05 AM, Andreas Schwab wrote:
> > On Aug 17 2016, Florian Weimer <fweimer@redhat.com> wrote:
> >
> >> On 08/17/2016 04:51 PM, Andreas Schwab wrote:
> >>> On Aug 17 2016, Torvald Riegel <triegel@redhat.com> wrote:
> >>>
> >>>> diff --git a/resolv/res_hconf.h b/resolv/res_hconf.h
> >>>> index b97734d..a3d23f3 100644
> >>>> --- a/resolv/res_hconf.h
> >>>> +++ b/resolv/res_hconf.h
> >>>> @@ -25,6 +25,15 @@
> >>>>
> >>>>  struct hconf
> >>>>  {
> >>>> +  /* We keep the INITIALIZED member only for backwards compatibility.  New
> >>>> +     code should just call _res_hconf_init unconditionally.  For this field
> >>>> +     to be used safely, users must ensure that either (1) a call to
> >>>> +     _res_hconf_init happens-before any load from INITIALIZED, or (2) an
> >>>                                ^
> >>>> +     assignment of zero to INITIALIZED happens-before any load from it, and
> >>>                                                  ^
> >>>
> >>> Those hyphens look wrong.
> >>
> >> “happens-before” is third-person singular of the verb
> >> “happen-before”. It's a technical term widely used while discussing memory
> >> models.
> >
> > But writing it without hyphen is standard English and doesn't require
> > special knowledge.
> 
> But making sense of this comment requires special knowledge, and writing 
> the verb as “happens-before” makes it clear that the memory relation is 
> meant, and not some foggy concept of ordering.  It's like 
> MAY/SHOULD/RECOMMEND in IETF RFCs in this regard.

Yes.  As Florian says, this is meant to refer to the happens-before
relation in the C11 memory model, and not some other notion of ordering.
The formalization of the C11 memory model uses "happens-before", so it
seemed like a good choice.

Nonetheless, I'm open to other ways of referring to it, as long as it's
precise and clearly refers to the memory model; in the end, the glibc
community needs to be happy with how we talk about concurrency.  If
anyone has suggestions, let me know.




Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]