マルチスレッドのプログラミング

pthread_setcanceltype(3T)

pthread_setcanceltype(3T) は、取り消しタイプを遅延モードまたは非同期モードに設定します。スレッドが生成されると、デフォルトでは取り消しタイプが遅延モードに設定されます。遅延モードにあるスレッドは、取り消しポイント以外では取り消すことができません。非同期モードにあるスレッドは、実行中の任意のポイントで取り消すことができます。非同期モードを使用するのは好ましくありません。


プロトタイプ:

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 です。それ以外の戻り値は、エラーが発生したことを示します。以下の条件が検出されると、この関数は失敗し、対応する値を返します。


EINVAL

PTHREAD_CANCEL_DEFERRED または PTHREAD_CANCEL_ASYNCHRONOUS タイプではありません。