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::condition_variable cond;
boost::mutex mut;
void wait_for_data_to_process()
{
boost::unique_lockboost::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.