Добрый всем вечер!
Есть такой класс:
class BackgroundTask
{
public:
BackgroundTask();
~BackgroundTask();
void odd_job()
{
while (1)
{
// do something useful
}
}
void slot_need_stop()
{
std::terminate();
}
};
Где-то в main
:
std::thread jobt(&BackgroundTask::odd_job, &job);
jobt.join();
Слот slot_need_stop
связан с сигналом от обработчика SIGTERM и прерывает работу odd_job
.
Насколько корректно такое прерывание потока? Если нет, то посоветуйте, плиз, как. Заранее благодарен.