マルチスレッドのプログラミング

継承スケジューリングポリシーの設定

継承スケジューリングポリシーを設定するには、pthread_attr_setinheritsched(3C) を使用します。

pthread_attr_setinheritsched の構文

int pthread_attr_setinheritsched(pthread_attr_t *tattr, int inheritsched);
#include <pthread.h> 
pthread_attr_t tattr; 
int inheritsched; 
int ret; 

/* use  creating thread's scheduling policy and priority*/ 
ret = pthread_attr_setinheritsched(&tattr, PTHREAD_INHERIT_SCHED);

inheritsched の値が PTHREAD_INHERIT_SCHED の場合は、生成スレッドのスケジューリングポリシーおよび優先順位が、作成されたスレッドのために使用されます。属性構造内のスケジューリングポリシーおよび優先順位は無視されます。inheritsched の値が PTHREAD_EXPLICIT_SCHED の場合は、属性構造のスケジューリングポリシーおよび優先順位が、作成されたスレッドのために使用されます。この場合、呼び出し元は、pthread_create() が成功するための十分な特権を持っている必要があります。

pthread_attr_setinheritsched の戻り値

pthread_attr_setinheritsched() は、正常終了時に 0 を返します。それ以外の戻り値は、エラーが発生したことを示します。以下の条件が検出されると、この関数は失敗し、次の値を戻します。


EINVAL

説明:

tattr に設定しようとした値は無効です。