Как стать автором
Обновить

Комментарии 2

Из за того что в C++ до сих пор нет cancelable threads, приходится использовать обёртки над pthread. С threads в C++ целая куча проблем. Например невозможность корректно завершить програму если один из потоков ожидает ввода-вывода или семафора, ну или ожидает выполнения любой из функций являющихся cancellation point. В принципе это не проблема, но хотелось-бы подобные вещи иметь из коробки.

Но в любом случае, установка хэндлера корректной очистки при cancellation, с помощью pthread_cleanup_push и pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, ...) и pthread_setcanceltype(PTHREAD_CANCEL_DEFERRED, ...) в обёртке, всё равно лучше чем опрос is_interrupted по каждому чиху (и об этом опросе можно ведь забыть, т.е. и тут придётся обёртку делать).

Зарегистрируйтесь на Хабре , чтобы оставить комментарий