Just a small addition. Instead of sleep, you can use a condition variable and wait on it with timeout. So the if condition would be smth like:
if(!timed_wait(cond, timeout))
t1.interrupt();
Stephan,
what about that:On Wed, Mar 4, 2009 at 3:20 PM, Stephan Menzel <stephan.menzel@gmx.eu> wrote:like this (pseudo):try
void readthread() {{// go into blocking read
sock.sync_receive_from(...);// signal successful read}
catch(boost::thread_interrupted const& e)
{
//handle interruption
}
boost::this_thread::sleep(timeout);
}
original thread:
...
thread t1(readthread);if(/*not signaled successful read*/)
t1.interrupt();
Regards,
Ovanes