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 (),指定要设置的时钟。 有效值是:
CLOCK_REALTIME
系统实时时钟。
CLOCK_MONOTONIC
系统单调时钟。 此时钟的值表示自过去未指定点以来的时间量。 此时钟的值始终增大: 它不能由 clock_settime () 设置,并且不能具有向后时钟跳跃。

返回值

如果成功, pthread_condattr_getclock 子例程返回 0 ,并将 attr 的时钟属性值存储在 clock_id 参数引用的对象中。 否则,将返回错误代码以指示错误。

如果成功,那么 pthread_condattr_setclock 子例程将返回 0; 否则,将返回错误代码以指示错误。

错误代码

描述
EINVAL attr 指定的值无效。
EINVAL 如果 clock_id 指定的值未引用已知时钟或是 CPU 时间时钟,那么 pthread_condattr_setclock 子例程将返回此错误。
ENOTSUP 此函数不受 checkpoint-restart 进程支持。