
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(); On Wed, Mar 4, 2009 at 3:30 PM, Ovanes Markarian <om_boost@keywallet.com>wrote:
Stephan,
what about that:
On Wed, Mar 4, 2009 at 3:20 PM, Stephan Menzel <stephan.menzel@gmx.eu>wrote:
like this (pseudo):
void readthread() { try
{
// go into blocking read sock.sync_receive_from(...);
// signal successful read } catch(boost::thread_interrupted const& e) { //handle interruption }
}
original thread:
... thread t1(readthread); boost::this_thread::sleep(timeout);
if(/*not signaled successful read*/) t1.interrupt();
Regards, Ovanes