void interruptible_wait(std::condition_variable& cv, std::unique_lock<std::mutex>& lk) { interruption_point(); this_thread_interrupt_flag.set_condition_variable(cv); //std::this_thread::sleep_for(std::chrono::milliseconds(10000)); cv.wait(lk); this_thread_interrupt_flag.clear_condition_variable(); interruption_point(); }
~clear_cv_on_destruct() { this_thread_interrupt_flag.clear_condition_variable(); }