thr_suspend(3THR) は、target_thread で指定したスレッドの実行をただちに停止させます。thr_suspend() が正常終了した時点で、指定のスレッドは実行状態ではありません。
停止しているスレッドに対して再度 thr_suspend() を発行しても効果はありません。停止しているスレッドをシグナルで呼び起こすことはできません。スレッドが実行を再開するまでシグナルは保留状態のままです。
#include <thread.h> int thr_suspend(thread_t tid); |
次の例では、pthread で定義されている pthread_t
tid と Solaris スレッドの thread_t
tid が同じです。tid 値は、代入によっても型変換によっても使用できます。
thread_t tid; /* thr_create() からの tid */ /* pthread_create() で生成されたスレッドからの */ /* Solaris tid に相当する pthread */ pthread_t ptid; int ret; ret = thr_suspend(tid); /* 型変換で pthread ID 変数を使用する */ ret = thr_suspend((thread_t) ptid); |
正常終了時は 0 です。それ以外の戻り値は、エラーが発生したことを示します。以下の条件が検出されると、thr_suspend() は失敗し、対応する値を返します。