
Umm, not sure if I got you correctly: you mean one of your thread waits in condition_variable_any::timed_wait() and second tries to interrupt it, which just does not seem to make any effect? Can you write a small test case demonstrating your problem?
The following works as expected with boost 1.45: #include <string> #include <boost/thread/thread.hpp> boost::condition_variable cond; boost::mutex mut; void wait_for_data_to_process() { boost::unique_lock<boost::mutex> lock(mut); boost::xtime curTime; boost::xtime_get(&curTime, boost::TIME_UTC); curTime.sec += 10; cond.timed_wait(lock, curTime); printf("Data processed\n"); } int main() { boost::thread t(&wait_for_data_to_process); usleep(1000000); t.interrupt(); t.join(); return 0; } So you need either to explain your problem more clearly or provide the test case demonstrating the issue.