Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

That contradicts the assertion made in the article:

    Well, since thread cancellation is implemented using exceptions, and
    thread cancellation can happen in arbitrary places, we’re always liable
    to a cancellation happening in a noexcept block, which is undefined
    behavior, and which in practice will cause your program to crash.

    So since C++11, and especially since C++14 where destructors are marked
    as noexcept by default, thread cancellation is essentially useless in C++


The article is kinda useless, to be honest. Seems to be some sort of advanced blog spam and not somebody speaking from real experience.

Anyways, pthread_cancel can be of two types - asynchronous or deferred. Deferred is when cancellation happens only during a system call. It's the default and what you want. (You don't want the asynchronous mode.)

Under the hood thread cancellation is a C++ exception, so you still get RAII, etc.




Consider applying for YC's Winter 2026 batch! Applications are open till Nov 10

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: