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_np 和 pthread_attr_setsrad_np 子例程将返回值 0。 否则,将返回错误号以指示错误。
错误代码
如果满足以下条件,那么 pthread_attr_getsrad_np 和 pthread_attr_setsrad_np 子例程将失败:
| 项 | 描述 |
|---|---|
| ENOTSUP | 增强的亲缘关系不存在或未启用。 |
| EINVAL (pthread_attr_getsrad_np) | attr 参数指定的属性对象无效,或者 sradp 参数指向的地址未对齐以保存 sradid_t。 |
| EINVAL (pthread_attr_setsrad_np) | 由 sradp 参数指定的 SRAD 亲缘关系值无效。 |
注: pthread_attr_getsrad_np和 pthread_attr_setsrad_np 函数不会返回错误代码 EINTR。