id,summary,reporter,owner,description,type,status,milestone,component,version,severity,resolution,keywords,cc 12949,using sleep_for in a thread context without including boost/thread/thread.hpp yields incorrect behaviour when BOOST_THREAD_HAS_CONDATTR_SET_CLOCK_MONOTONIC is defined,rkaris@…,viboes,"When defining a function f() in a compilation unit which uses boost::thread::sleep_for() which does not include , but another boost thread header, function.h {{{ #ifndef FUNCTION_H #define FUNCTION_H void f(); #endif }}} function.cpp: {{{ #define BOOST_THREAD_VERSION 4 #define BOOST_THREAD_HAS_CONDATTR_SET_CLOCK_MONOTONIC #include #include ""function.h"" void f() { boost::this_thread::sleep_for(boost::chrono::milliseconds(10)); } }}} and defining a compilation unit which uses this function in a thread context, main.cpp: {{{ #define BOOST_THREAD_VERSION 4 #define BOOST_THREAD_HAS_CONDATTR_SET_CLOCK_MONOTONIC #include ""function.h"" #include int main() { auto t = boost::thread([] { f(); }); t.join(); return 0; } }}} the sleep_for() waits much long than expected when a monotonic clock is used. This has been tested with both boost versions 1.63.0 and 1.64.0 beta2.",Bugs,closed,Boost 1.66.0,thread,Boost 1.63.0,Problem,fixed,,