スレッドの取り消しは、取り消しが安全な場合にだけ行なってください。pthread 規格では、下記のような取り消しポイントが規定されています。
pthread_testcancel 呼び出しを通してプログラムで設定されるスレッドの取り消しポイント。
pthread_cond_wait または pthread_cond_timedwait(3C) で特定の条件の発生を待っているスレッド。
sigwait(2) でブロックされたスレッド。
ある種の標準ライブラリコール。通常、スレッドがブロックできる関数が含まれます。リストについては、cancellation(5) のマニュアルページを参照してください。
デフォルトでは、取り消しが有効 (使用可能) です。場合によっては、アプリケーションで取り消しを無効 (使用不可) にすることがあるかもしれません。取り消しを無効にすると、再度取り消し要求を有効にするまでの間、すべての取り消し要求が保留されます。
取り消しを無効にする方法については、「pthread_setcancelstate の構文」を参照してください。