The functions whose names end in
_until take an argument that specifies a time
point
. These functions produce absolute timeouts
. 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
.if
Ca≤Ct, the waiting function should not time out until
Clock::now() returns a
time
Cn≥Ct, i.e., waking at
Ct+Di+Dm. [
Note 1:
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]