PTHREAD_SETSCHEDPARAM(3) |
FreeBSD Library Functions Manual |
PTHREAD_SETSCHEDPARAM(3) |
名前
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 のスケジューリングパラメータを
policy と
param で示される値に変更する。
policy は
SCHED_OTHER ( 通常の、リアルタイムでないスケジューリング ) 、
SCHED_RR ( ラウンドロビン方式のリアルタイムスケジューリング ) 、
SCHED_FIFO ( 先入れ先出し (FIFO) 方式のリアルタイムスケジューリング ) のいずれかの値をとる。
param は 2 つのリアルタイムポリシーに対するスケジューリング優先度を表す。スケジューリングポリシーに関するさらなる情報は
sched_setpolicy(2) を参照のこと。
リアルタイムスケジューリングポリシーである
SCHED_RR と
SCHED_FIFO は、スーパーユーザ権限をもったプロセスに限って使用できる。
pthread_getschedparam はスレッド
target_thread のスケジューリングポリシーとスケジューリングパラメータを取得し、それぞれ
policy と
param で指し示される領域に格納する。
返り値
pthread_setschedparam および
pthread_getschedparam は成功すると 0 を返し、エラーならば非 0 のエラーコードを返す。
エラー
エラーの場合、
pthread_setschedparam は次のようなエラーコードを返す:
-
EINVAL
-
policy が
SCHED_OTHER、
SCHED_RR、
SCHED_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).