diff options
author | Derek Mauro <dmauro@google.com> | 2023-03-14 08:41:26 -0700 |
---|---|---|
committer | Copybara-Service <copybara-worker@google.com> | 2023-03-14 08:42:14 -0700 |
commit | 6d41348a3c07d5acd4060b4c873d0801a674d059 (patch) | |
tree | f58429dd25a244027d9452f7651b98090724f221 /absl/status | |
parent | 6db185d8e2ba93adf32d689fd702ee0465b2e5ec (diff) |
Synchronization: Add support for true relative timeouts using
monotonic clocks on Linux when the implementation uses futexes
After this change, when synchronization methods that wait are passed
an absl::Duration to limit the wait time, these methods will wait for
that interval, even if the system clock is changed (subject to any
limitations with how CLOCK_MONOTONIC keeps track of time). In other
words, an observer measuring the time with a stop watch will now see
the correct interval, even if the system clock is changed. Previously,
the duration was added to the current time, and methods would wait
until that time was reached on the possibly changed realtime system
clock.
The behavior of the synchronization methods that take an absl::Time is
unchanged. These methods always wait until the absolute point in time
is reached and respect changes to the system clock. In other words, an
observer will always see the timeout occur when a wall clock reaches
that time, even if the clock is manipulated externally.
Note: ABSL_PREDICT_FALSE was removed from the error case in Futex as
timeouts are handled by this case, and timeouts are part of normal
operation.
PiperOrigin-RevId: 516534869
Change-Id: Ib70b83e4be3f9e3f1727646975a21a1d30acb242
Diffstat (limited to 'absl/status')
0 files changed, 0 insertions, 0 deletions