# Extra Clang Tools 22.1.2 documentation

## 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.

    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.

cert-pos47-c redirects here as an alias of this check.