pthread_attr_getsrad_np 和 pthread_attr_setsrad_np 子例程

用途

获取并设置线程属性对象的 SRAD (调度程序资源分配域) 亲缘关系属性。

线程库 (libpthreads.a)

语法

#include <pthread.h>

int pthread_attr_setsrad_np (attr, srad,flags)
pthread_attr_tattr;
sradid_tsrad;
int flags;
int pthread_attr_getsrad_np (attr, srad,flagsp)
pthread_attr_t *attr;
sradid_t *srad;
int *flagsp;

描述

sradp/srad 参数指定吸引使用属性对象创建的线程的 SRAD。 缺省情况下,将根据系统策略在系统中的 SRAD 上均衡新创建的线程。

pthread_attr_getsrad_np 子例程获取 SRAD 亲缘关系属性,而 pthread_attr_setsrad_np 子例程在 attr 参数指定的线程属性对象中设置 SRAD 亲缘关系属性。

flags 参数指示 SRAD 附件是 strict 还是 Advisory。

如果 SRAD 附件 (如果有) 是 strict,那么 flagsp 参数将返回 R_STRICT_SRAD

参数

描述
attr 指定线程属性对象。
sradp 指向存储要抽取的 SRAD 的位置。
SRAD 指定要抽取的 SRAD
标志

设置 R_STRICT_SRAD 指示 SRAD 是严格首选的。

如果 SRAD 连接为 NULL ,请设置为 R_STRICT_SRAD

标志 指向存储与 SRAD 附件关联的标志 (如果有) 的位置。

返回值

成功完成后, pthread_attr_getsrad_nppthread_attr_setsrad_np 子例程将返回值 0。 否则,将返回错误号以指示错误。

错误代码

如果满足以下条件,那么 pthread_attr_getsrad_nppthread_attr_setsrad_np 子例程将失败:

描述
ENOTSUP 增强的亲缘关系不存在或未启用。
EINVAL (pthread_attr_getsrad_np) attr 参数指定的属性对象无效,或者 sradp 参数指向的地址未对齐以保存 sradid_t
EINVAL (pthread_attr_setsrad_np) sradp 参数指定的 SRAD 亲缘关系值无效。
注: pthread_attr_getsrad_nppthread_attr_setsrad_np 函数不会返回错误代码 EINTR