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