2008年11月25日火曜日

boost thread interruption


#include <iostream>
#include <boost/thread.hpp>

void f() {
while( 1 ) {
std::cout << "interrupt OK" << std::endl;
{
boost::this_thread::disable_interruption di;
std::cout << "interrupt NG" << std::endl;
boost::this_thread::interruption_point();
{
boost::this_thread::restore_interruption ri(di);
std::cout << "interrupt OK" << std::endl;
}
std::cout << "interrupt NG" << std::endl;
}
std::cout << "interrupt OK" << std::endl;
boost::this_thread::interruption_point();
}
}

int main() {
boost::thread t(f);
t.interrupt();
t.join();
return 0;
}

おおーっ、スゲー。windowsでも中断するよ!disable_interruption の意味がいまいち、よくわかんねーけど、規模が大きくなったら効いてくるのかな?

0 件のコメント: