標準/拡張機能 | C/C++ | 依存項目 |
---|---|---|
Single UNIX Specification、バージョン 3 |
両方 | z/OS V1R9 |
#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() はゼロを戻します。正常に実行されなかった場合、エラー番号を戻します。
⁄* 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, ¶m);
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);
}