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

シグナルのスレッドへの送信

pthread_kill(3THR)

pthread_kill(3THR) は、スレッドにシグナルを送ります。


プロトタイプ:
int	 pthread_kill(thread_t tid, int sig);

#include <pthread.h>
#include <signal.h>
int sig;
pthread_t tid;
int ret;

ret = pthread_kill(tid, sig);

tid で指定したスレッドに sig で指定したシグナルを送ります。tid は、呼び出しスレッドと同じプロセス内のスレッドでなければなりません。引数 sig は、signal(5) のリスト中の値でなければなりません。

sig が 0 のときはエラーチェックだけが行われ、シグナルは実際には送られません。これにより tid で指定したスレッド識別子が有効であるかどうかを調べることができます。

戻り値

正常終了時は 0 です。それ以外の戻り値は、エラーが発生したことを示します。以下のいずれかの条件が検出されると pthread_kill() は失敗し、次の値が戻されます。


EINVAL

sig は正しいシグナル番号ではありません。


ESRCH

現在のプロセス内で tid で指定したスレッドが見つかりません。