Manpages

名 前

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/ に 書 か れ て い る 。