From Jason Turner

[thread.req.timing]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmpre5u619f/{from.md → to.md} +18 -13
tmp/tmpre5u619f/{from.md → to.md} RENAMED
@@ -26,29 +26,32 @@ the clock time point of the return from timeout should be Cₜ + Dᵢ + Dₘ
26
  when the clock is not adjusted during the timeout. If the clock is
27
  adjusted to the time Cₐ during the timeout, the behavior should be as
28
  follows:
29
 
30
  - if Cₐ > Cₜ, the waiting function should wake as soon as possible, i.e.
31
- Cₐ + Dᵢ + Dₘ, since the timeout is already satisfied. This
32
  specification may result in the total duration of the wait decreasing
33
- when measured against a steady clock.
34
  - if Cₐ <= Cₜ, the waiting function should not time out until
35
  `Clock::now()` returns a time Cₙ >= Cₜ, i.e. waking at Cₜ + Dᵢ + Dₘ.
36
- When the clock is adjusted backwards, this specification may result in
37
- the total duration of the wait increasing when measured against a
38
- steady clock. When the clock is adjusted forwards, this specification
39
- may result in the total duration of the wait decreasing when measured
40
- against a steady clock.
41
 
42
  An implementation shall return from such a timeout at any point from the
43
  time specified above to the time it would return from a steady-clock
44
  relative timeout on the difference between Cₜ and the time point of the
45
- call to the `_until` function. Implementations should decrease the
46
- duration of the wait when the clock is adjusted forwards.
47
 
48
- If the clock is not synchronized with a steady clock, e.g., a CPU time
49
- clock, these timeouts might not provide useful functionality.
 
 
 
 
50
 
51
  The resolution of timing provided by an implementation depends on both
52
  operating system and hardware. The finest resolution provided by an
53
  implementation is called the *native resolution*.
54
 
@@ -56,9 +59,11 @@ Implementation-provided clocks that are used for these functions shall
56
  meet the `TrivialClock` requirements ([[time.clock.req]]).
57
 
58
  A function that takes an argument which specifies a timeout will throw
59
  if, during its execution, a clock, time point, or time duration throws
60
  an exception. Such exceptions are referred to as *timeout-related
61
- exceptions*. instantiations of clock, time point and duration types
 
 
62
  supplied by the implementation as specified in  [[time.clock]] do not
63
- throw exceptions.
64
 
 
26
  when the clock is not adjusted during the timeout. If the clock is
27
  adjusted to the time Cₐ during the timeout, the behavior should be as
28
  follows:
29
 
30
  - if Cₐ > Cₜ, the waiting function should wake as soon as possible, i.e.
31
+ Cₐ + Dᵢ + Dₘ, since the timeout is already satisfied. \[*Note 1*: This
32
  specification may result in the total duration of the wait decreasing
33
+ when measured against a steady clock. — *end note*]
34
  - if Cₐ <= Cₜ, the waiting function should not time out until
35
  `Clock::now()` returns a time Cₙ >= Cₜ, i.e. waking at Cₜ + Dᵢ + Dₘ.
36
+ \[*Note 2*: When the clock is adjusted backwards, this specification
37
+ may result in the total duration of the wait increasing when measured
38
+ against a steady clock. When the clock is adjusted forwards, this
39
+ specification may result in the total duration of the wait decreasing
40
+ when measured against a steady clock. — *end note*]
41
 
42
  An implementation shall return from such a timeout at any point from the
43
  time specified above to the time it would return from a steady-clock
44
  relative timeout on the difference between Cₜ and the time point of the
45
+ call to the `_until` function.
 
46
 
47
+ [*Note 3*: Implementations should decrease the duration of the wait
48
+ when the clock is adjusted forwards. *end note*]
49
+
50
+ [*Note 4*: If the clock is not synchronized with a steady clock, e.g.,
51
+ a CPU time clock, these timeouts might not provide useful
52
+ functionality. — *end note*]
53
 
54
  The resolution of timing provided by an implementation depends on both
55
  operating system and hardware. The finest resolution provided by an
56
  implementation is called the *native resolution*.
57
 
 
59
  meet the `TrivialClock` requirements ([[time.clock.req]]).
60
 
61
  A function that takes an argument which specifies a timeout will throw
62
  if, during its execution, a clock, time point, or time duration throws
63
  an exception. Such exceptions are referred to as *timeout-related
64
+ exceptions*.
65
+
66
+ [*Note 5*: Instantiations of clock, time point and duration types
67
  supplied by the implementation as specified in  [[time.clock]] do not
68
+ throw exceptions. — *end note*]
69