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

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

スレッドにシグナルを送信するには、pthread_kill(3C) を使用します。

pthread_kill の構文

int  pthread_kill(pthread_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.h(3HEAD) のリスト中の値でなければなりません。

sig が 0 のときはエラーチェックだけが行われ、シグナルは実際には送られません。このエラーチェックは、 tid の妥当性を検査する目的で使用できます。

pthread_kill の戻り値

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


EINVAL

説明:

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


ESRCH

説明:

現在のプロセスに tid が存在しません。