id,summary,reporter,owner,description,type,status,milestone,component,version,severity,resolution,keywords,cc 9856,[windows] condition_variable::wait_for returns wrong cv_status on timeout.,pi88el@…,Niall Douglas,"'''The following bug seems to work on *nix systems. But not on Windows 7 with Visual Studio 2013 Express.'''[[BR]] If a condition variable is waiting for a defined amount of time, sometimes (nearly always) the returned cv_status is wrong. {{{ int main() { mutex mtx; condition_variable cond; unique_lock lk(mtx); std::cout << BOOST_VERSION << ""\n""; for(int i=0; i<10; i++) { std::cout << i << "" : "" << chrono::steady_clock::now() << ""\n""; if (cv_status::no_timeout == cond.wait_for(lk, chrono::seconds(1))) std::cout << ""no_timeout\n""; } } }}} While the condition is '''never''' notified, i get '''no_timeout'''.[[BR]] debuging the code: {{{ steady_clock::time_point c_now = steady_clock::now(); do_wait(lock, ceil(d).count()); return steady_clock::now() - c_now < d ? cv_status::no_timeout : cv_status::timeout; }}} '''steady_clock::now() - c_now < d''' is ''true''. It seems do_wait is sleeping to short. ",Bugs,closed,,thread,Boost 1.57.0,Problem,wontfix,condition_variable wait_for cv_status,