From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by sourceware.org (Postfix) with ESMTPS id EE2B03858D1E for ; Fri, 11 Feb 2022 17:39:21 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org EE2B03858D1E Received: from mail-oi1-f198.google.com (mail-oi1-f198.google.com [209.85.167.198]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-9-M_IlA3EbPGWaYs1f3TwcFg-1; Fri, 11 Feb 2022 12:39:19 -0500 X-MC-Unique: M_IlA3EbPGWaYs1f3TwcFg-1 Received: by mail-oi1-f198.google.com with SMTP id o4-20020aca5a04000000b002d3a5cc05b9so2574455oib.6 for ; Fri, 11 Feb 2022 09:39:19 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:from:date:message-id:subject:to:cc; bh=KdSK3VAhZ1c5FZd4FI0sL2GxIBzY3PL8kcahUrxqWCo=; b=np4Cc1euVxTaL3+pi3K/CpsCddmwmMJRvg/h5lGYTCccuNbr4vdrTb9XrvGFQ2X1Vj gfwMyVM9LOCuWBWjlIyl0ROW661MFUUaf7mfEFkhA40rc896fhlyFLSeUp3akN+l2G8S Apij2dnU3dr8GVP2m999ELiz9s7TLhxjp+pBNkvMMcBV4As5oZbVynNZYzvXTYHjBD/f 2wqzkigDQFKOK24JvoiGEqxyu5dVommwM7e9o6njjzzmyQUCu7f1atbvX7vex5jJuxY2 9BZ1kE05TekZMJzq9YHLcPIth2c8CoYeqCft2QiJQdVHpuaef3KPznWDk0SAKIy9+8Ag 3QYw== X-Gm-Message-State: AOAM5303uWZFgCHrGNK9W5vhjUioqzKQ/73zGRTrgvWJd0tzCwHzsCvU nf2urK/bn//RCbmC43KEqM+nnF1mUc1iVpkLRi6XQXho+ldDeFDZ6Foe9V7XnVYX1fk5TLLBNd9 x6U45dalnDtWLrvVeB0wCjEzRAtOqGbg= X-Received: by 2002:a9d:4e03:: with SMTP id p3mr1006281otf.299.1644601159082; Fri, 11 Feb 2022 09:39:19 -0800 (PST) X-Google-Smtp-Source: ABdhPJx2s/6Wr9xOteZKuJ1VuBsj1+5sbRigie4td/t0ErUK9RFOScjDyRWcxCc8nHMN2OoR/nzU+nbuPhaMTs8Dkto= X-Received: by 2002:a9d:4e03:: with SMTP id p3mr1006267otf.299.1644601158814; Fri, 11 Feb 2022 09:39:18 -0800 (PST) MIME-Version: 1.0 From: Thomas Rodgers Date: Fri, 11 Feb 2022 09:39:08 -0800 Message-ID: Subject: [PATCH] libstdc++: Make atomic notify_one and notify_all non-const To: "libstdc++" Cc: gcc Patches X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: multipart/mixed; boundary="000000000000de86b505d7c18bfd" X-Spam-Status: No, score=-12.7 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, HTML_MESSAGE, RCVD_IN_DNSWL_LOW, SPF_HELO_NONE, SPF_NONE, TXREP, T_SCC_BODY_TEXT_LINE, URI_HEX autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: libstdc++@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libstdc++ mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Feb 2022 17:39:23 -0000 --000000000000de86b505d7c18bfd Content-Type: text/plain; charset="UTF-8" PR102994 "atomics: std::atomic::wait is not marked const" raises the issue that the current libstdc++ implementation marks the notify members const, the implementation strategy used by libstdc++, as well as libc++ and the Microsoft STL, do not require the atomic to be mutable (it is hard to conceive of a desirable implementation approach that would require it). The original paper proposing the wait/notify functionality for atomics (p1185) also had these members marked const for the first three revisions, but that was changed without explanation in r3 and subsequent revisions of the paper. After raising the issue to the authors of p1185 and the author of the libc++ implementation, the consensus seems to be "meh, it's harmless" so there seems little appetite for an LWG issue to revisit the subject. This patch changes the libstdc++ implementation to be in agreement with the standard by removing const from those notify_one/notify_all members. libstdc++-v3/ChangeLog: * include/bits/atomic_base.h (atomic_flag::notify_one, notify_all): Remove const qualification. (__atomic_base::notify_one, notify_all): Likewise. * include/std/atomic (atomic::notify_one, notify_all): Likewise. (atomic::notify_one, notify_all): Likewise. (atomic::notify_one, notify_all): Likewise. (atomic_notify_one, atomic_notify_all): Likewise. * testsuite/29_atomics/atomic/wait_notify/102994.cc: Adjust test to account for change in notify_one/notify_all signature. Tested x86_64-pc-linux-gnu. --000000000000de86b505d7c18bfd Content-Type: text/x-patch; charset="US-ASCII"; name="0001-libstdc-Make-atomic-notify_one-and-notify_all-non-co.patch" Content-Disposition: attachment; filename="0001-libstdc-Make-atomic-notify_one-and-notify_all-non-co.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kzip20960 RnJvbSA3ZWQ2ZGZhZTVhMGE3YTllNTYyOTFkNzgwZTQ0Zjk5ZDY0NDg0N2UwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBUaG9tYXMgUm9kZ2VycyA8cm9kZ2VydEBhcHBsaWFudG9sb2d5 LmNvbT4KRGF0ZTogVGh1LCAxMCBGZWIgMjAyMiAxODo1NToxNiAtMDgwMApTdWJqZWN0OiBbUEFU Q0hdIGxpYnN0ZGMrKzogTWFrZSBhdG9taWMgbm90aWZ5X29uZSBhbmQgbm90aWZ5X2FsbCBub24t Y29uc3QKCjxyZWNvcmRpbmcgdGhpcyBoZXJlIGZvciBmdXR1cmUgcmVmZXJlbmNlPgpQUjEwMjk5 NCAiYXRvbWljczogc3RkOjphdG9taWM8cHRyPjo6d2FpdCBpcyBub3QgbWFya2VkIGNvbnN0IiBy YWlzZXMgdGhlCmlzc3VlIHRoYXQgdGhlIGN1cnJlbnQgbGlic3RkYysrIGltcGxlbWVudGF0aW9u IG1hcmtzIHRoZSBub3RpZnkgbWVtYmVycwpjb25zdCwgdGhlIGltcGxlbWVudGF0aW9uIHN0cmF0 ZWd5IHVzZWQgYnkgbGlic3RkYysrLCBhcyB3ZWxsIGFzIGxpYmMrKwphbmQgdGhlIE1pY3Jvc29m dCBTVEwsIGRvIG5vdCByZXF1aXJlIHRoZSBhdG9taWMgdG8gYmUgbXV0YWJsZSAoaXQgaXMgaGFy ZAp0byBjb25jZWl2ZSBvZiBhIGRlc2lyYWJsZSBpbXBsZW1lbnRhdGlvbiBhcHByb2FjaCB0aGF0 IHdvdWxkIHJlcXVpcmUgaXQpLgpUaGUgb3JpZ2luYWwgcGFwZXIgcHJvcG9zaW5nIHRoZSB3YWl0 L25vdGlmeSBmdW5jdGlvbmFsaXR5IGZvciBhdG9taWNzCihwMTE4NSkgYWxzbyBoYWQgdGhlc2Ug bWVtYmVycyBtYXJrZWQgY29uc3QgZm9yIHRoZSBmaXJzdCB0aHJlZSByZXZpc2lvbnMsCmJ1dCB0 aGF0IHdhcyBjaGFuZ2VkIHdpdGhvdXQgZXhwbGFuYXRpb24gaW4gcjMgYW5kIHN1YnNlcXVlbnQg cmV2aXNpb25zIG9mCnRoZSBwYXBlci4KCkFmdGVyIHJhaXNpbmcgdGhlIGlzc3VlIHRvIHRoZSBh dXRob3JzIG9mIHAxMTg1IGFuZCB0aGUgYXV0aG9yIG9mIHRoZQpsaWJjKysgaW1wbGVtZW50YXRp b24sIHRoZSBjb25zZW5zdXMgc2VlbXMgdG8gYmUgIm1laCwgaXQncyBoYXJtbGVzcyIgc28KdGhl cmUgc2VlbXMgbGl0dGxlIGFwcGV0aXRlIGZvciBhbiBMV0cgaXNzdWUgdG8gcmV2aXNpdCB0aGUg c3ViamVjdC4KClRoaXMgcGF0Y2ggY2hhbmdlcyB0aGUgbGlic3RkYysrIGltcGxlbWVudGF0aW9u IHRvIGJlIGluIGFncmVlbWVudCB3aXRoCnRoZSBzdGFuZGFyZCBieSByZW1vdmluZyBjb25zdCBm cm9tIHRob3NlIG5vdGlmeV9vbmUvbm90aWZ5X2FsbCBtZW1iZXJzLgoKbGlic3RkYysrLXYzL0No YW5nZUxvZzoKCSogaW5jbHVkZS9iaXRzL2F0b21pY19iYXNlLmggKGF0b21pY19mbGFnOjpub3Rp Znlfb25lLAoJbm90aWZ5X2FsbCk6IFJlbW92ZSBjb25zdCBxdWFsaWZpY2F0aW9uLgoJKF9fYXRv bWljX2Jhc2U6Om5vdGlmeV9vbmUsIG5vdGlmeV9hbGwpOiBMaWtld2lzZS4KCSogaW5jbHVkZS9z dGQvYXRvbWljIChhdG9taWM8Ym9vbD46Om5vdGlmeV9vbmUsIG5vdGlmeV9hbGwpOgoJTGlrZXdp c2UuCgkoYXRvbWljOjpub3RpZnlfb25lLCBub3RpZnlfYWxsKTogTGlrZXdpc2UuCgkoYXRvbWlj PFQqPjo6bm90aWZ5X29uZSwgbm90aWZ5X2FsbCk6IExpa2V3aXNlLgoJKGF0b21pY19ub3RpZnlf b25lLCBhdG9taWNfbm90aWZ5X2FsbCk6IExpa2V3aXNlLgoJKiB0ZXN0c3VpdGUvMjlfYXRvbWlj cy9hdG9taWMvd2FpdF9ub3RpZnkvMTAyOTk0LmNjOiBBZGp1c3QgdGVzdAoJdG8gYWNjb3VudCBm b3IgY2hhbmdlIGluIG5vdGlmeV9vbmUvbm90aWZ5X2FsbCBzaWduYXR1cmUuCi0tLQogbGlic3Rk YysrLXYzL2luY2x1ZGUvYml0cy9hdG9taWNfYmFzZS5oICAgICAgICAgIHwgIDggKysrKy0tLS0K IGxpYnN0ZGMrKy12My9pbmNsdWRlL3N0ZC9hdG9taWMgICAgICAgICAgICAgICAgICB8IDE2ICsr KysrKysrLS0tLS0tLS0KIC4uLi8yOV9hdG9taWNzL2F0b21pYy93YWl0X25vdGlmeS8xMDI5OTQu Y2MgICAgICB8ICA0ICsrLS0KIDMgZmlsZXMgY2hhbmdlZCwgMTQgaW5zZXJ0aW9ucygrKSwgMTQg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbGlic3RkYysrLXYzL2luY2x1ZGUvYml0cy9hdG9t aWNfYmFzZS5oIGIvbGlic3RkYysrLXYzL2luY2x1ZGUvYml0cy9hdG9taWNfYmFzZS5oCmluZGV4 IGQ4Njc2NmNmMzliLi5hZGZkOWZhMzAyNyAxMDA2NDQKLS0tIGEvbGlic3RkYysrLXYzL2luY2x1 ZGUvYml0cy9hdG9taWNfYmFzZS5oCisrKyBiL2xpYnN0ZGMrKy12My9pbmNsdWRlL2JpdHMvYXRv bWljX2Jhc2UuaApAQCAtMjUyLDEzICsyNTIsMTMgQEAgX0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNF X1ZFUlNJT04KICAgICAvLyBUT0RPIGFkZCBjb25zdCB2b2xhdGlsZSBvdmVybG9hZAogCiAgICAg X0dMSUJDWFhfQUxXQVlTX0lOTElORSB2b2lkCi0gICAgbm90aWZ5X29uZSgpIGNvbnN0IG5vZXhj ZXB0CisgICAgbm90aWZ5X29uZSgpIG5vZXhjZXB0CiAgICAgeyBzdGQ6Ol9fYXRvbWljX25vdGlm eV9hZGRyZXNzKCZfTV9pLCBmYWxzZSk7IH0KIAogICAgIC8vIFRPRE8gYWRkIGNvbnN0IHZvbGF0 aWxlIG92ZXJsb2FkCiAKICAgICBfR0xJQkNYWF9BTFdBWVNfSU5MSU5FIHZvaWQKLSAgICBub3Rp ZnlfYWxsKCkgY29uc3Qgbm9leGNlcHQKKyAgICBub3RpZnlfYWxsKCkgbm9leGNlcHQKICAgICB7 IHN0ZDo6X19hdG9taWNfbm90aWZ5X2FkZHJlc3MoJl9NX2ksIHRydWUpOyB9CiAKICAgICAvLyBU T0RPIGFkZCBjb25zdCB2b2xhdGlsZSBvdmVybG9hZApAQCAtNjAwLDEzICs2MDAsMTMgQEAgX0dM SUJDWFhfQkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04KICAgICAgIC8vIFRPRE8gYWRkIGNvbnN0IHZv bGF0aWxlIG92ZXJsb2FkCiAKICAgICAgIF9HTElCQ1hYX0FMV0FZU19JTkxJTkUgdm9pZAotICAg ICAgbm90aWZ5X29uZSgpIGNvbnN0IG5vZXhjZXB0CisgICAgICBub3RpZnlfb25lKCkgbm9leGNl cHQKICAgICAgIHsgc3RkOjpfX2F0b21pY19ub3RpZnlfYWRkcmVzcygmX01faSwgZmFsc2UpOyB9 CiAKICAgICAgIC8vIFRPRE8gYWRkIGNvbnN0IHZvbGF0aWxlIG92ZXJsb2FkCiAKICAgICAgIF9H TElCQ1hYX0FMV0FZU19JTkxJTkUgdm9pZAotICAgICAgbm90aWZ5X2FsbCgpIGNvbnN0IG5vZXhj ZXB0CisgICAgICBub3RpZnlfYWxsKCkgbm9leGNlcHQKICAgICAgIHsgc3RkOjpfX2F0b21pY19u b3RpZnlfYWRkcmVzcygmX01faSwgdHJ1ZSk7IH0KIAogICAgICAgLy8gVE9ETyBhZGQgY29uc3Qg dm9sYXRpbGUgb3ZlcmxvYWQKZGlmZiAtLWdpdCBhL2xpYnN0ZGMrKy12My9pbmNsdWRlL3N0ZC9h dG9taWMgYi9saWJzdGRjKystdjMvaW5jbHVkZS9zdGQvYXRvbWljCmluZGV4IGJjNTc2NTliNmU3 Li5kODE5YjZiZjQxZSAxMDA2NDQKLS0tIGEvbGlic3RkYysrLXYzL2luY2x1ZGUvc3RkL2F0b21p YworKysgYi9saWJzdGRjKystdjMvaW5jbHVkZS9zdGQvYXRvbWljCkBAIC0xNzIsMTEgKzE3Miwx MSBAQCBfR0xJQkNYWF9CRUdJTl9OQU1FU1BBQ0VfVkVSU0lPTgogICAgIC8vIFRPRE8gYWRkIGNv bnN0IHZvbGF0aWxlIG92ZXJsb2FkCiAKICAgICB2b2lkCi0gICAgbm90aWZ5X29uZSgpIGNvbnN0 IG5vZXhjZXB0CisgICAgbm90aWZ5X29uZSgpIG5vZXhjZXB0CiAgICAgeyBfTV9iYXNlLm5vdGlm eV9vbmUoKTsgfQogCiAgICAgdm9pZAotICAgIG5vdGlmeV9hbGwoKSBjb25zdCBub2V4Y2VwdAor ICAgIG5vdGlmeV9hbGwoKSBub2V4Y2VwdAogICAgIHsgX01fYmFzZS5ub3RpZnlfYWxsKCk7IH0K ICNlbmRpZiAvLyBfX2NwcF9saWJfYXRvbWljX3dhaXQKICAgfTsKQEAgLTM5OSwxMSArMzk5LDEx IEBAIF9HTElCQ1hYX0JFR0lOX05BTUVTUEFDRV9WRVJTSU9OCiAgICAgLy8gVE9ETyBhZGQgY29u c3Qgdm9sYXRpbGUgb3ZlcmxvYWQKIAogICAgIHZvaWQKLSAgICBub3RpZnlfb25lKCkgY29uc3Qg bm9leGNlcHQKKyAgICBub3RpZnlfb25lKCkgbm9leGNlcHQKICAgICB7IHN0ZDo6X19hdG9taWNf bm90aWZ5X2FkZHJlc3MoJl9NX2ksIGZhbHNlKTsgfQogCiAgICAgdm9pZAotICAgIG5vdGlmeV9h bGwoKSBjb25zdCBub2V4Y2VwdAorICAgIG5vdGlmeV9hbGwoKSBub2V4Y2VwdAogICAgIHsgc3Rk OjpfX2F0b21pY19ub3RpZnlfYWRkcmVzcygmX01faSwgdHJ1ZSk7IH0KICNlbmRpZiAvLyBfX2Nw cF9saWJfYXRvbWljX3dhaXQgCiAKQEAgLTY1NCwxMSArNjU0LDExIEBAIF9HTElCQ1hYX0JFR0lO X05BTUVTUEFDRV9WRVJTSU9OCiAgICAgLy8gVE9ETyBhZGQgY29uc3Qgdm9sYXRpbGUgb3Zlcmxv YWQKIAogICAgIHZvaWQKLSAgICBub3RpZnlfb25lKCkgY29uc3Qgbm9leGNlcHQKKyAgICBub3Rp Znlfb25lKCkgbm9leGNlcHQKICAgICB7IF9NX2Iubm90aWZ5X29uZSgpOyB9CiAKICAgICB2b2lk Ci0gICAgbm90aWZ5X2FsbCgpIGNvbnN0IG5vZXhjZXB0CisgICAgbm90aWZ5X2FsbCgpIG5vZXhj ZXB0CiAgICAgeyBfTV9iLm5vdGlmeV9hbGwoKTsgfQogI2VuZGlmIC8vIF9fY3BwX2xpYl9hdG9t aWNfd2FpdAogCkBAIC0xNDM0LDEyICsxNDM0LDEyIEBAIF9HTElCQ1hYX0JFR0lOX05BTUVTUEFD RV9WRVJTSU9OCiAKICAgdGVtcGxhdGU8dHlwZW5hbWUgX1RwPgogICAgIGlubGluZSB2b2lkCi0g ICAgYXRvbWljX25vdGlmeV9vbmUoY29uc3QgYXRvbWljPF9UcD4qIF9fYSkgbm9leGNlcHQKKyAg ICBhdG9taWNfbm90aWZ5X29uZShhdG9taWM8X1RwPiogX19hKSBub2V4Y2VwdAogICAgIHsgX19h LT5ub3RpZnlfb25lKCk7IH0KIAogICB0ZW1wbGF0ZTx0eXBlbmFtZSBfVHA+CiAgICAgaW5saW5l IHZvaWQKLSAgICBhdG9taWNfbm90aWZ5X2FsbChjb25zdCBhdG9taWM8X1RwPiogX19hKSBub2V4 Y2VwdAorICAgIGF0b21pY19ub3RpZnlfYWxsKGF0b21pYzxfVHA+KiBfX2EpIG5vZXhjZXB0CiAg ICAgeyBfX2EtPm5vdGlmeV9hbGwoKTsgfQogI2VuZGlmIC8vIF9fY3BwX2xpYl9hdG9taWNfd2Fp dAogCmRpZmYgLS1naXQgYS9saWJzdGRjKystdjMvdGVzdHN1aXRlLzI5X2F0b21pY3MvYXRvbWlj L3dhaXRfbm90aWZ5LzEwMjk5NC5jYyBiL2xpYnN0ZGMrKy12My90ZXN0c3VpdGUvMjlfYXRvbWlj cy9hdG9taWMvd2FpdF9ub3RpZnkvMTAyOTk0LmNjCmluZGV4IDlkOTJmZjk1NGYxLi5mNTcyY2U3 ZWYxMSAxMDA2NDQKLS0tIGEvbGlic3RkYysrLXYzL3Rlc3RzdWl0ZS8yOV9hdG9taWNzL2F0b21p Yy93YWl0X25vdGlmeS8xMDI5OTQuY2MKKysrIGIvbGlic3RkYysrLXYzL3Rlc3RzdWl0ZS8yOV9h dG9taWNzL2F0b21pYy93YWl0X25vdGlmeS8xMDI5OTQuY2MKQEAgLTUsMTMgKzUsMTMgQEAKICNp bmNsdWRlIDxhdG9taWM+CiAKIHZvaWQKLXRlc3QxKGNvbnN0IHN0ZDo6YXRvbWljPGNoYXIqPiYg YSwgY2hhciogcCkKK3Rlc3QxKHN0ZDo6YXRvbWljPGNoYXIqPiYgYSwgY2hhciogcCkKIHsKICAg YS53YWl0KHApOwogfQogCiB2b2lkCi10ZXN0Mihjb25zdCBzdGQ6OmF0b21pYzxpbnQ+KiBhLCBp bnQgdikKK3Rlc3QyKHN0ZDo6YXRvbWljPGludD4qIGEsIGludCB2KQogewogICBzdGQ6OmF0b21p Y193YWl0KGEsIHYpOwogICBzdGQ6OmF0b21pY19ub3RpZnlfb25lKGEpOwotLSAKMi4zNC4xCgo= --000000000000de86b505d7c18bfd--