pthread_attr_setschedparam() - スケジューリング・パラメーター属性の設定

標準

標準/拡張機能 C/C++ 依存項目

Single UNIX Specification、バージョン 3

両方

z/OS V1R9
POSIX(ON)

形式

#define _UNIX03_THREADS
#include <pthread.h>
#include <sched.h>

int pthread_attr_setschedparam(pthread_attr_t *__restrict__ attr,
                    const struct sched_param *__restrict__ param);

機能説明

pthread_attr_setschedparam() は、param からの値を使用して attr のスケジューリング優先順位属性を設定します。

attr は、pthread_attr_init() によって初期化された スレッド属性オブジェクトを指すポインターです。

param は、attr に設定するためにスレッド・スケジューリング優先順位属性のソースとして pthread_attr_setschedparam() が使用する、ユーザー定義のスケジューリング・パラメーター・オブジェクトを指します。 sched_param 構造体のスケジューリング優先順位メンバーは int で宣言されます。

正常に実行された場合、param からの sched_priority が、後続の pthread_getschedparam() 関数呼び出しで 使用可能です。しかし、z/OS® UNIX は、attr に保管されたスケジューリング優先順位の値に基づいたその他の処置を行いません。

戻り値

正常に実行された場合、pthread_attr_setschedparam() はゼロを戻します。正常に実行されなかった場合、エラー番号を戻します。

エラー・コード
説明
EINVAL
attr によって指定された値が初期設定されたスレッド属性オブジェクト を指していません。

⁄* CELEBP67 *⁄                                   
⁄* Example using SUSv3 pthread_attr_setschedparam() interface *⁄ 

#define _UNIX03_THREADS 1
#include <stdio.h>                                                              
#include <stdlib.h> 
#include <pthread.h>                                                            
#include <errno.h>                                                            
                                                                                
int main(void)
{                                                                               
   pthread_attr_t attr;                                                         
   int              rc; 
   struct sched_param param;

   param.sched_priority = 999;

   if (pthread_attr_init(&attr) == -1) {                                        
      perror("error in pthread_attr_init");                                     
      exit(1);                                                                  
   }                                                                            
                                                                                
   rc = pthread_attr_setschedparam(&attr, &param);
   if (rc != 0) {                                           
      printf("pthread_attr_setschedparam returned: %d¥n", rc); 
      printf("Error: %d, Errno_Jr: %08x¥n", errno, __errno2());
      exit(2);                                                                  
   } else {
      printf("Set schedpriority to %d¥n", param.sched_priority);
   }

   rc = pthread_attr_destroy(&attr);
   if (rc != 0) {                                     
      perror("error in pthread_attr_destroy");                                  
      exit(3);                                                                  
   }                                                                            

   exit(0);                                                                     
}                                                                               

関連情報