История изменений
Исправление asaw, (текущая версия) :
Остановить только с помощью самой нити - сделать там какую-нибуть condition_variable и устроить логику так, чтобы нить эту cv периодически проверяла. После этого делать http://en.cppreference.com/w/cpp/thread/thread/join Впрочем, с pthreads на самом деле всё обстоит примерно так же - pthread_cancel с гарантией останавливает нить только в точке отмены типа системного вызова read(), но выхода из такой функции ты можешь добиться послав сигнал вроде того же SIGINT.
Исправление asaw, :
Остановить только с помощью самой нити - сделать там какую-нибуть condition_variable и устроить логику так, чтобы нить эту cv периодически проверяла. После этого делать http://en.cppreference.com/w/cpp/thread/thread/join Впрочем, с pthreads на самом деле всё обстоит примерно так же - pthread_cancel останавливает нить только в точке отмены типа системного вызова read(), но выхода из такой функции ты можешь добиться послав сигнал вроде того же SIGINT.
Исходная версия asaw, :
Остановить только с помощью самой нити - сделать там какую-нибуть condition_variable и устроить логику так, чтобы нить эту cv периодически проверяла. После этого делать http://en.cppreference.com/w/cpp/thread/thread/join Впрочем, с pthreads на самом деле всё обстоит примерно так же - pthread_cancel останавливает нить только в точке отмены типа системного вызова read(), но этого же самого ты можешь добиться послав сигнал вроде того же SIGINT.