pthread_condattr_getclock 和 pthread_condattr_setclock 子例程
用途
获取并设置时钟选择条件变量属性。
语法
int pthread_condattr_getclock(const pthread_condattr_t *restrict attr,
clockid_t *restrict clock_id);
int pthread_condattr_setclock(pthread_condattr_t *attr,
clockid_t clock_id);描述
pthread_condattr_getclock 子例程从 attr 参数引用的属性对象获取时钟属性的值。 pthread_condattr_setclock 子例程在 attr 参数引用的初始化属性对象中设置时钟属性。 如果使用引用 CPU 时间时钟的 clock_id 参数调用 pthread_condattr_setclock ,那么调用将失败。
时钟属性是将用于度量 pthread_cond_timedwait 子例程的超时服务的时钟的时钟标识。 时钟属性的缺省值是指系统时钟。
参数
| 项 | 描述 |
|---|---|
| attr | 指定条件属性对象。 |
| 时钟标识 | 对于 pthread_condattr_getclock (),指向将 stored.For pthread_condattr_setclock (),指定要设置的时钟。 有效值是:
|
返回值
如果成功, pthread_condattr_getclock 子例程返回 0 ,并将 attr 的时钟属性值存储在 clock_id 参数引用的对象中。 否则,将返回错误代码以指示错误。
如果成功,那么 pthread_condattr_setclock 子例程将返回 0; 否则,将返回错误代码以指示错误。
错误代码
| 项 | 描述 |
|---|---|
| EINVAL | attr 指定的值无效。 |
| EINVAL | 如果 clock_id 指定的值未引用已知时钟或是 CPU 时间时钟,那么 pthread_condattr_setclock 子例程将返回此错误。 |
| ENOTSUP | 此函数不受 checkpoint-restart 进程支持。 |