Почему этот код работает очень быстро?
int main() { std::condition_variable cv; std::mutex mtx; std::unique_lock<std::mutex> lock(mtx); cv.wait_until(lock, std::chrono::system_clock::now() + 10000ms); return 0; }
Похоже, что wait_until игнорируется
Вы, вероятно, получаете ложное пробуждение . Попробуйте использовать перегрузку, которая принимает предикат ...
#include <condition_variable> int main() { std::condition_variable cv; std::mutex mtx; std::unique_lock<std::mutex> lock(mtx); cv.wait_until(lock, std::chrono::system_clock::now() + 10000ms, []{ return false; }); return 0; }