переменная std :: condition_variable чувствительна к системным часам - PullRequest
3 голосов
/ 08 февраля 2020

У меня есть код, который использует condition_variable. Когда системные часы будут установлены в обратном направлении, condition_variable будет ждать намного дольше, потому что он использует system_clock вместо устойчивый_clock. Я видел некоторые обходные пути, опубликованные здесь для этой проблемы. Вот предыдущий поток Как мне справиться с изменением системных часов во время ожидания на std :: condition_variable? Ни один из обходных путей не показался особенно элегантным. В моем случае я делаю кросс-компиляцию для встроенной linux системы. Я решил исправить проблему, переместив включаемый файл condition_variable в мой проект и изменив его на использование chrono :: stable_clock вместо chrono :: system_clock. Я не люблю менять системные включаемые файлы. Два вопроса: 1. Есть ли причина для condition_variable использовать system_clock? Почему system_clock используется в стандарте include? Мне кажется, что изменение стандарта include для использования stable_clock не нарушило бы какой-либо код. 2. У кого-нибудь есть лучшее предложение?

...