名前
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).