On Saturday 27 October 2018 at 17:07:00 -0400, Daniel Eischen wrote:
> The nice thing about being able to set the clock in an attribute or some
> other way (e.g., pthread_set_preferred_clock) is that you only have to do
> it once, as opposed to potentially modifying lots of other code, even in
> libraries outside your scope. If you're writing a library that waits for
> events for the caller, you don't know what clock to use unless you add it
> to your API. Allowing the clock to be set on a per-thread (or even
> process) basis, might make things easier. Absolute times wouldn't really
> be helped by this though, as you still need to get the time for the
> correct clock.

I've written another blog post[1] that explains why the clock to use is a
property of the wait, although it doesn't address your suggestion directly.
The C++ standard library behaves as if "struct timespec" also contained
clockid_t, although the clock is part of the type so the compiler handles
it with no runtime overhead. This means that C++ libraries can be clock
agnostic.

I think that being able to set these things for a process or a thread makes
writing generic libraries harder. Some libraries may actively want to
choose which clock to use since their use of condition variables is
entirely invisible to the calling application. Others may want to expose
the clock to use. At the moment, neither is really possible for anything
but condition variables, and condition variables need to know the clock to
use in advance.

Thanks.

Mike.

[1] 
http://randombitsofuselessinformation.blogspot.com/2018/10/the-clock-used-for-waiting-on-condition.html

Reply via email to