From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 16142 invoked by alias); 7 Jan 2018 20:55:56 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 15873 invoked by uid 89); 7 Jan 2018 20:55:55 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-12.6 required=5.0 tests=BAYES_00,GIT_PATCH_2,GIT_PATCH_3,KAM_SHORT,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=ham version=3.3.2 spammy=knew X-Spam-User: qpsmtpd, 2 recipients X-HELO: relay.appriver.com Received: from relay101a.appriver.com (HELO relay.appriver.com) (207.97.230.14) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Sun, 07 Jan 2018 20:55:53 +0000 X-Note: This Email was scanned by AppRiver SecureTide X-Note-AR-ScanTimeLocal: 01/07/2018 3:53:48 PM X-Note: SecureTide Build: 12/19/2017 1:37:44 PM UTC (2.6.27.2) X-Note: Filtered by 10.238.11.161 X-Note-AR-Scan: None - PIPE Received: by relay.appriver.com (CommuniGate Pro PIPE 6.1.7) with PIPE id 273613001; Sun, 07 Jan 2018 15:53:48 -0500 Received: from [213.210.30.29] (HELO elite.brightsign) by relay.appriver.com (CommuniGate Pro SMTP 6.1.7) with ESMTPS id 273613002; Sun, 07 Jan 2018 15:53:48 -0500 Received: from chuckie.brightsign ([fd44:d8b8:cab5:cb01::19] helo=chuckie) by elite.brightsign with esmtp (Exim 4.89) (envelope-from ) id 1eYHyr-0008ur-Jc; Sun, 07 Jan 2018 20:55:45 +0000 Received: from mac by chuckie with local (Exim 4.89) (envelope-from ) id 1eYHyr-0003R9-J7; Sun, 07 Jan 2018 20:55:45 +0000 From: Mike Crowe To: libstdc++@gcc.gnu.org, gcc-patches@gcc.gnu.org Cc: Mike Crowe Subject: [PATCH 0/5] Make std::future::wait_* use std::chrono::steady_clock when required Date: Sun, 07 Jan 2018 20:55:00 -0000 Message-Id: <20180107205532.13138-1-mac@mcrowe.com> X-Note: This Email was scanned by AppRiver SecureTide X-Note-AR-ScanTimeLocal: 01/07/2018 3:53:48 PM X-Note: SecureTide Build: 12/19/2017 1:37:44 PM UTC (2.6.27.2) X-Note: Filtered by 10.238.11.161 X-Policy: brightsign.biz X-Primary: brightsign.biz@brightsign.biz X-Virus-Scan: V- X-Note: ICH-CT/SI:0-0/SG:1 1/1/0001 12:00:00 AM X-Note-SnifferID: 0 X-Note: TCH-CT/SI:0-43/SG:1 1/7/2018 3:53:04 PM X-GBUdb-Analysis: 0, 213.210.30.29, Ugly c=0.476605 p=-0.960784 Source Normal X-Signature-Violations: 0-0-0-4384-c X-Note: Spam Tests Failed: X-Country-Path: ->->United Kingdom->United States X-Note-Sending-IP: 213.210.30.29 X-Note-Reverse-DNS: elite.brightsigndigital.co.uk X-Note-Return-Path: mcrowe@brightsign.biz X-Note: User Rule Hits: X-Note: Global Rule Hits: G293 G294 G295 G296 G300 G301 G433 X-Note: Encrypt Rule Hits: X-Note: Mail Class: VALID X-SW-Source: 2018-01/txt/msg00415.txt.bz2 This patch series was originally submitted back in September at https://gcc.gnu.org/ml/libstdc++/2017-09/msg00083.html which ended up as https://patchwork.ozlabs.org/cover/817379/ . The patches received no comments at all, which may mean that they are perfect or that they are so bad that no-one knew where to start with criticising them. It would be good to know which. :) The patches are unchanged from last time, but I have corrected a typo in one of the commit messages. The original cover message follows. This is a first attempt to make std::future::wait_until and std::future::wait_for make correct use of std::chrono::steady_clock/CLOCK_MONOTONIC. It also makes std::future::wait_until react to changes to CLOCK_REALTIME during the wait, but only when passed a std::chrono::system_clock time point. Prior to these patches, the situation is similar to that described at https://gcc.gnu.org/bugzilla/show_bug.cgi?id=41861 for std::condition_variable, but with the benefit that this time the bug can be fixed entirely within libstdc++. (I've omitted the ChangeLog entries for now, since I don't believe that this is ready to be accepted in its current form.) Mike Crowe (5): Improve libstdc++-v3 async test libstdc++ futex: Use FUTEX_CLOCK_REALTIME for wait libstdc++ futex: Support waiting on std::chrono::steady_clock directly libstdc++ atomic_futex: Use std::chrono::steady_clock as reference clock Extra async tests, not for merging libstdc++-v3/include/bits/atomic_futex.h | 74 ++++++++++++++- libstdc++-v3/src/c++11/futex.cc | 48 +++++++--- libstdc++-v3/testsuite/30_threads/async/async.cc | 112 +++++++++++++++++++++++ 3 files changed, 217 insertions(+), 17 deletions(-) -- 2.11.0