public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
From: "rodgertq at gcc dot gnu.org" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug libstdc++/102994] std::atomic<ptr>::wait is not marked const
Date: Fri, 04 Feb 2022 00:03:17 +0000	[thread overview]
Message-ID: <bug-102994-4-6hUWFm4d7H@http.gcc.gnu.org/bugzilla/> (raw)
In-Reply-To: <bug-102994-4@http.gcc.gnu.org/bugzilla/>

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102994

--- Comment #7 from Thomas Rodgers <rodgertq at gcc dot gnu.org> ---
(In reply to Óscar Fuentes from comment #6)
> (In reply to Jonathan Wakely from comment #5)
> > (In reply to Óscar Fuentes from comment #4)
> > > The fix is wrong. It changes atomic_notify_one and atomic_notify_all instead
> > > of atomic<>::wait.
> > 
> > It changed both.
> > 
> > > So right now atomic<>::wait remains unfixed
> > 
> > Are you sure?
> 
> Sigh. Sorry. It would be nice if the commit message mentioned the change to
> atomic_notify_* and its motivation, though.
>  
> > > and atomic_notify_(one|all) arg
> > > is wrongly marked as const.
> > 
> > This will be the subject of a library issue, potentially fixing the
> > standard. The notify functions should be const too.
> 
> So IIUC you are applying modifications to libstdc++ that deviate from the
> published standard expecting that the committee will accept those changes.
> As a user, this is troublesome, because right now I need to special-case gcc
> version >11.2 and maybe version <X.xx again in the future if the change is
> not accepted and is reverted.

There is an ongoing discussion between myself and the SG1,LWG, and LEWG chairs
(two of which were authors of p1135 which proposes atomic wait/notify) as to
whether there is a wording issue with the standard.

None of the three major standard library implementations require (as a matter
of implementation detail) notify_one/notify_all to be non-const, and indeed the
early wording of p1135 had them marked const. Between r2 and r3 of p1135 this
was changed, it'cites the minutes of an LEWG discussion as part of the change
rationale, but the minutes of that discussion do not give the motivation for
the change.

One argument is that you would typically wait in a const context and notify in
a non-const context, but by that rationale, the constness of atomic_ref::notify
is somewhat weird.

  parent reply	other threads:[~2022-02-04  0:03 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-10-29  2:37 [Bug libstdc++/102994] New: " gcc_bugzilla at axeitado dot com
2021-10-30 10:42 ` [Bug libstdc++/102994] " redi at gcc dot gnu.org
2021-12-10  1:57 ` cvs-commit at gcc dot gnu.org
2021-12-10  2:14 ` cvs-commit at gcc dot gnu.org
2021-12-10 10:52 ` redi at gcc dot gnu.org
2022-02-03 20:31 ` gcc_bugzilla at axeitado dot com
2022-02-03 21:01 ` redi at gcc dot gnu.org
2022-02-03 21:34 ` gcc_bugzilla at axeitado dot com
2022-02-04  0:03 ` rodgertq at gcc dot gnu.org [this message]
2022-02-04  0:33 ` redi at gcc dot gnu.org
2022-02-04  0:39 ` redi at gcc dot gnu.org
2022-02-04  0:44 ` redi at gcc dot gnu.org
2022-02-04  0:55 ` rodgertq at gcc dot gnu.org
2022-02-04  1:37 ` gcc_bugzilla at axeitado dot com
2022-02-04 10:55 ` redi at gcc dot gnu.org
2022-02-11 17:41 ` rodgertq at gcc dot gnu.org
2022-04-07 15:42 ` redi at gcc dot gnu.org
2022-04-21  7:50 ` rguenth at gcc dot gnu.org
2022-04-22 22:53 ` cvs-commit at gcc dot gnu.org
2022-04-22 22:54 ` cvs-commit at gcc dot gnu.org
2022-05-10 14:57 ` rodgertq at gcc dot gnu.org

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=bug-102994-4-6hUWFm4d7H@http.gcc.gnu.org/bugzilla/ \
    --to=gcc-bugzilla@gcc.gnu.org \
    --cc=gcc-bugs@gcc.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).