現在、ハンドラーをio_serviceに投稿し、スレッドプールで実行しています。
io_serv.post( boost::bind(&Class::bar, p1, p2) );
私の労働者はこの機能を実行します:
m_mutex.lock();
std::cout << "[" << boost::this_thread::get_id()
<< "] Thread Start" << std::endl;
m_mutex.unlock();
size_t tasks = m_serv.run();
m_mutex.lock();
std::cout << "[" << boost::this_thread::get_id() << "] accomplished "
<< tasks << " tasks" << std::endl;
m_mutex.unlock();
これまでのところ良好ですが、アクティブな(ただし待機中の)スレッドを強制終了せずに、ハンドラーキューが空になったときにイベントをトリガーしたいと思います。
それは可能ですか、そしてどのように?