This is the mail archive of the
mailing list for the glibc project.
Re: [RFC] Add pthread_cond_timedwaitonclock_np
- From: Mike Crowe <mac at mcrowe dot com>
- To: "libc-alpha at sourceware dot org" <libc-alpha at sourceware dot org>
- Date: Tue, 7 Jul 2015 16:54:29 +0100
- Subject: Re: [RFC] Add pthread_cond_timedwaitonclock_np
- Authentication-results: sourceware.org; auth=none
- References: <1436277389-22478-1-git-send-email-mac at mcrowe dot com> <559BE228 dot 4010001 at arm dot com>
On Tuesday 07 July 2015 at 15:28:56 +0100, Szabolcs Nagy wrote:
> On 07/07/15 14:56, Mike Crowe wrote:
> > C++11's std::condition_variable::wait_until specifies the clock to be
> > used at the time of the wait and permits separate waits on the same
> > instance using different clocks.
> > Unfortunately pthread_cond_timedwait always uses the clock that was
> > specified (or defaulted) when pthread_cond_init was called. libstdc++'s
> > current implementation converts all waits to
> > std::chrono::system_clock (i.e. CLOCK_REALTIME) which can race against
> > the system clock changing.
> > Inventing a brand-new function pthread_cond_timedwaitonclock_np which
> > accepts both the clock and the time point as parameters is
> > straightforward and means that the C++11 standard behaviour can be
> > implemented in libstdc++ on Linux at least.
> do you have a reference to the rationale that introduced this api to C++?
Not exactly. Here are some interesting links:
(search for "887")
It seems that even more work than I was previously aware of has been
invested in trying to solve this over the past six years or so. :(