名 前
pthread_attr_setinheritsched, pthread_attr_getinheritsched − ス レ ッ ド 属 性 オ ブ ジ ェ ク ト の inherit−scheduler 属 性 の 設 定 /取 得 を 行 う
書 式
#include <pthread.h>
int
pthread_attr_setinheritsched(pthread_attr_t
*attr,
int inheritsched);
int pthread_attr_getinheritsched(const pthread_attr_t
*attr,
int *inheritsched);
−pthread で コ ン パ イ ル し て リ ン ク す る 。
説 明
pthread_attr_setinheritsched()
関 数 は 、 attr が
参 照 す る ス レ
ッ ド 属 性 オ ブ
ジ ェ ク ト の
inherit−scheduler 属 性 を
inheritsched で 指 定 さ
れ た 値 に 設 定
す る 。 inherit−scheduler 属
性 に よ り 、 ス
レ ッ ド 属 性 オ
ブ ジ ェ ク ト attr
を 使 っ て 作 成
さ れ る ス レ ッ
ド が 、 呼 び 出
し た ス レ ッ ド
の ス ケ ジ ュ ー
リ ン グ 属 性 を
継 承 す る か 、
attr か ら ス ケ ジ
ュ ー リ ン グ 属
性 を 取 得 す る
か が 決 定 さ れ
る 。 次 に 挙 げ
る ス ケ ジ ュ ー
リ ン グ 属 性 は
inherit−scheduler 属 性 の 影
響 を 受 け る : ス
ケ ジ ュ ー リ ン
グ ポ リ シ ー
(pthread_attr_setschedpolicy(3))、 ス
ケ ジ ュ ー リ ン
グ 優 先 度
(pthread_attr_setschedparam(3))、 contention
scope (pthread_attr_setscope(3))。 以
下 の 値 を inheritsched
に 指 定 で き る
。
PTHREAD_INHERIT_SCHED
attr を 使 っ て 作 成 さ れ た ス レ ッ ド は 、 ス レ ッ ド を 作 成 す る ス レ ッ ド か ら ス ケ ジ ュ ー リ ン グ 属 性 を 継 承 す る 。 attr 内 の ス ケ ジ ュ ー リ ン グ 属 性 は 無 視 さ れ る 。
PTHREAD_EXPLICIT_SCHED
attr を 使 っ て 作 成 さ れ た ス レ ッ ド は 、 ス レ ッ ド 属 性 オ ブ ジ ェ ク ト で 指 定 さ れ た 値 か ら ス ケ ジ ュ ー リ ン グ 属 性 を 取 得 す る 。 新 た に 初 期 化 さ れ た ス レ ッ ド 属 性 オ ブ ジ ェ ク ト の inherit−scheduler 属 性 の デ フ ォ ル ト 設 定 は PTHREAD_INHERIT_SCHED で あ る 。
pthread_attr_getinheritsched() は 、 ス レ ッ ド 属 性 オ ブ ジ ェ ク ト attr の inherit−scheduler 属 性 を inheritsched が 指 す バ ッ フ ァ ー に 入 れ て 返 す 。
返 り 値
成 功 す る と 、 こ れ ら の 関 数 は 0 を 返 す 。 エ ラ ー の 場 合 、 0 以 外 の エ ラ ー 番 号 を 返 す 。
エ ラ ー
pthread_attr_setinheritsched() は 以 下 の エ ラ ー で 失 敗 す る 場 合 が あ る 。
EINVAL |
inheritsched に 無 効 な 値 が 指 定 さ れ た 。 |
POSIX.1−2001 で は 、 pthread_attr_setinheritsched() に 関 し て エ ラ ー ENOTSUP ("サ ポ ー ト さ れ て い な い 値 を 属 性 に 設 定 し よ う と し た ") も 追 加 で 規 定 さ れ て い る 。
属 性
マ ル チ ス レ ッ デ ィ ン グ (pthreads(7) 参 照 ) 関 数 pthread_attr_setinheritsched() と pthread_attr_getinheritsched() は ス レ ッ ド セ ー フ で あ る 。
準 拠
POSIX.1−2001.
バ グ
glibc 2.8 の 時 点 で は 、 ス レ ッ ド 属 性 オ ブ ジ ェ ク ト が pthread_attr_init(3) を 使 っ て 初 期 化 さ れ た 場 合 、 ス レ ッ ド 属 性 オ ブ ジ ェ ク ト の ス ケ ジ ュ ー リ ン グ ポ リ シ ー が SCHED_OTHER に 、 ス ケ ジ ュ ー リ ン グ 優 先 度 が 0 に 設 定 さ れ る 。 一 方 、 そ の 後 inherit−scheduler 属 性 に PTHREAD_EXPLICIT_SCHED が 設 定 さ れ る と 、 こ の ス レ ッ ド 属 性 オ ブ ジ ェ ク ト を 使 っ て 作 成 さ れ た ス レ ッ ド で は 、 ス レ ッ ド を 作 成 す る ス レ ッ ド の ス ケ ジ ュ ー リ ン グ 属 性 が 間 違 っ て 継 承 さ れ て し ま う 。 pthread_create(3) を 呼 び 出 す 前 に ス ケ ジ ュ ー リ ン グ ポ リ シ ー 属 性 か ス ケ ジ ュ ー リ ン グ 優 先 度 属 性 の ど ち ら か が 明 示 的 に 設 定 さ れ た 場 合 に は 、 こ の バ グ は 発 生 し な い 。
例
pthread_setschedparam(3) を 参 照 。
関 連 項 目
pthread_attr_init(3), pthread_attr_setschedparam(3), pthread_attr_setschedpolicy(3), pthread_attr_setscope(3), pthread_create(3), pthread_setschedparam(3), pthread_setschedprio(3), pthreads(7), sched(7)
こ の 文 書 に つ い て
こ の man ペ ー ジ は Linux man−pages プ ロ ジ ェ ク ト の リ リ ー ス 3.79 の 一 部 で あ る 。 プ ロ ジ ェ ク ト の 説 明 と バ グ 報 告 に 関 す る 情 報 は http://www.kernel.org/doc/man−pages/ に 書 か れ て い る 。