PTHREAD_ATTR_SETINHERITSCHED

Section: Linux Programmer's Manual (3)
Updated: 2020-06-09
Index JM Home Page
 

名前

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 では、 pthread_attr_setinheritsched() に関して エラー ENOTSUP ("サポートされていない値を属性に設定しようとした") も追加で規定されている。  

属性

この節で使用されている用語の説明については、 attributes(7) を参照。
インターフェース 属性 値
pthread_attr_setinheritsched(), pthread_attr_getinheritsched() Thread safety MT-Safe
 

準拠

POSIX.1-2001, POSIX.1-2008.  

バグ

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 プロジェクトのリリース 5.10 の一部である。プロジェクトの説明とバグ報告に関する情報は https://www.kernel.org/doc/man-pages/ に書かれている。

関連キーワード

スレッド   属性   スケジューリング   pthread   attr   スタック   優先度   領域   ポリシー   デフォルト値   エラーコード   リアルタイム   確保   linuxthreads   保護   格納   LinuxThreads   合流   ユーザ   単位   バイト   初期化   個別   破壊   実装

Linux マニュアル 一覧

関連するコマンド・関数

pthread_attr_setinheritsched.3   pthread_attr_getschedpolicy.3   pthread_attr_setschedpolicy.3   pthread_attr_getschedparam.3   pthread_attr_setschedparam.3   pthread_setschedprio.3
 

Index

名前
書式
説明
返り値
エラー
属性
準拠
バグ
例
関連項目
この文書について

This document was created by man2html, using the manual pages.
Time: 04:39:37 GMT, October 11, 2026