pthread_setcanceltype(3THR) は、取り消しタイプを遅延モードまたは非同期モードに設定します。スレッドが生成されると、デフォルトでは取り消しタイプが遅延モードに設定されます。遅延モードにあるスレッドは、取り消しポイント以外では取り消すことができません。非同期モードにあるスレッドは、実行中の任意のポイントで取り消すことができます。非同期モードを使用するのは好ましくありません。
プロトタイプ: int pthread_setcanceltype(int type, int *oldtype); #include <pthread.h> int oldtype; int ret; /* 遅延モード */ ret = pthread_setcanceltype(PTHREAD_CANCEL_DEFERRED, &oldtype); /* 非同期モード */ ret = pthread_setcanceltype(PTHREAD_CANCEL_ASYNCHRONOUS, &oldtype); |
正常終了時は 0 です。それ以外の戻り値は、エラーが発生したことを示します。以下の条件が検出されると、この関数は失敗し、対応する値を返します。