| .. title:: clang-tidy - concurrency-thread-canceltype-asynchronous |
| |
| concurrency-thread-canceltype-asynchronous |
| ========================================== |
| |
| Finds ``pthread_setcanceltype`` function calls where a thread's cancellation |
| type is set to asynchronous. Asynchronous cancellation type |
| (``PTHREAD_CANCEL_ASYNCHRONOUS``) is generally unsafe, use type |
| ``PTHREAD_CANCEL_DEFERRED`` instead which is the default. Even with deferred |
| cancellation, a cancellation point in an asynchronous signal handler may still |
| be acted upon and the effect is as if it was an asynchronous cancellation. |
| |
| .. code-block: c++ |
| |
| pthread_setcanceltype(PTHREAD_CANCEL_ASYNCHRONOUS, &oldtype); |
| |
| This check corresponds to the CERT C Coding Standard rule |
| `POS47-C. Do not use threads that can be canceled asynchronously |
| <https://wiki.sei.cmu.edu/confluence/display/c/POS47-C.+Do+not+use+threads+that+can+be+canceled+asynchronously>`_. |