名前


pthread_setschedparam, pthread_getschedparam - スレッドのスケージューリングパラメータを制御する

書式


#include <pthread.h>

int pthread_setschedparam(pthread_t target_thread, int policy, const struct sched_param *param);

int pthread_getschedparam(pthread_t target_thread, int *policy, struct sched_param *param);

説明


pthread_setschedparam はスレッド target_thread のスケジューリングパラメータを policyparam で示される値に変更する。 policySCHED_OTHER ( 通常の、リアルタイムでないスケジューリング ) 、 SCHED_RR ( ラウンドロビン方式のリアルタイムスケジューリング ) 、 SCHED_FIFO ( 先入れ先出し (FIFO) 方式のリアルタイムスケジューリング ) のいずれかの値をとる。 param は 2 つのリアルタイムポリシーに対する スケジューリング優先度を表す。 スケジューリングポリシーに関するさらなる情報は sched_setpolicy(2) を参照のこと。

リアルタイムスケジューリングポリシーである SCHED_RRSCHED_FIFO は、スーパーユーザ権限をもったプロセスに限って使用できる。

pthread_getschedparam はスレッド target_thread のスケジューリングポリシーと スケジューリングパラメータを取得し、 それぞれ policyparam で指し示される領域に格納する。

返り値


pthread_setschedparam および pthread_getschedparam は成功すると 0 を返し、エラーならば非 0 のエラーコードを返す。

エラー


エラーの場合、 pthread_setschedparam は次のようなエラーコードを返す:

EINVAL
 policySCHED_OTHERSCHED_RRSCHED_FIFO のいずれでもない。

EINVAL
 指定されたポリシーでは param で指定された優先度パラメータは有効ではない。

EPERM 呼び出しプロセスはスーパユーザ権限を持っていない。

ESRCH スレッド target_thread は無効またはすでに終了している。

EFAULT
 param が指し示す領域はプロセスのメモリ空間外の領域である。

エラーの場合、 pthread_getschedparam は次のようなエラーコードを返す:

ESRCH スレッド target_thread は無効またはすでに終了している。

EFAULT
 policy または param が指し示す領域はプロセスのメモリ空間外の領域である。

著者


Xavier Leroy <Xavier.Leroy@inria.fr>

関連項目


sched_setscheduler(2), sched_getscheduler(2), sched_getparam(2), pthread_attr_setschedpolicy(3), pthread_attr_setschedparam(3).

openSUSE Logo

コンテンツ