Andrea
08/19/2023, 12:36 PMosquery::InternalRunnable
(as other places probably) is affected by clock adjustments (for sure on Windows, not sure on other platforms). Found this bug that basically say std::this_thread::sleep_until
and std::this_thread::sleep_for
implementation are based on a system_clock
rather than a steady_clock
. On top of it possibly other functions are affected such as:
std::condition_variable::wait_for
std::condition_variable::wait_until
std::condition_variable_any::wait_for
std::condition_variable_any::wait_until
std::future::wait_for
std::future::wait_until
std::recursive_timed_mutex::try_lock_for
std::recursive_timed_mutex::try_lock_until
std::shared_future::wait_for
std::shared_future::wait_until
std::shared_lock::try_lock_for
std::shared_lock::try_lock_until
std::shared_timed_mutex::try_lock_for
std::shared_timed_mutex::try_lock_until
std::shared_timed_mutex::try_lock_shared_for
std::shared_timed_mutex::try_lock_shared_until
std::timed_mutex::try_lock_for
std::timed_mutex::try_lock_until
std::unique_lock::try_lock_for
std::unique_lock::try_lock_until
shockedseph
Andrea
09/04/2023, 8:46 AMcondition_variable::wait_for
is not affected. But it is on Linux. The issue on linux seems like caused by glibc version 2.2.5. Version 2.3.0 fixes this issue..
So there is no complete fix in the short term.Stefano Bonicatti
09/05/2023, 2:52 PM_until
variants, and CentOS 6 which was the oldest linux we supported, was using glibc 2.12Andrea
09/06/2023, 9:39 AMStefano Bonicatti
09/06/2023, 11:13 AMStefano Bonicatti
09/06/2023, 11:17 AM