Implementations should use the clock
specified in the time point to measure time for these functions.
Given a clock time point
argument Ct, the clock time point of the return from timeout should be Ct+Di+Dm
when the clock is not adjusted during the timeout.
If the clock is adjusted to the time Ca
during the timeout, the behavior should be as follows:
if Ca>Ct, the waiting function should wake as soon as possible, i.e., Ca+Di+Dm,
since the timeout is already satisfied. This specification may result in the total
duration of the wait decreasing when measured against a steady clock.
: When the clock is adjusted
backwards, this specification can result in the total duration of the wait increasing when
measured against a steady clock. When the clock is adjusted forwards, this specification can
result in the total duration of the wait decreasing when measured against a steady clock. — end note
]
An implementation returns from such a timeout at any point from the time specified above to
the time it would return from a steady-clock relative timeout on the difference between Ct
and the time point of the call to the _until function.
A function that takes an argument which specifies a timeout will throw if,
during its execution, a clock, time point, or time duration throws an exception.