привет.
как корректно завершить работу потока?
допустим, в потоке выполняется операция.. обработка файла в 10Гб. Как мне правильно отменить/завершить операцию?
Потоки сделаны на boost::thread
варианты:
1. Можно постоянно проверять объект синхронизации на доступность.
2. Можно натыкать boost::this_thread::interrupt_point() и вызывать последовательность
boost::thread::interrupt();
boost::thread::join();
3. некий флаг завершения, который нужно постоянно проверять в потоке.
Но все эти решения неуниверстальны и не дают возможности остановить операцию сразу же по требованию (т.е. работает, пока флаг не будет проверен).
Самый корректный вариант натыкать вызовов boost::this_thread::interrupt_point() и ловить исключение?