pthread_condattr_getclock

Synopsis

#include <pthread.h>

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);

Status

Implemented

Conformance

IEEE Std 1003.1-2017

Description

The pthread_condattr_getclock() function shall obtain the value of the clock attribute from the attributes object referenced by attr.

The pthread_condattr_setclock() function shall set the clock attribute in an initialized attributes object referenced by attr. If pthread_condattr_setclock() is called with a clock_id argument that refers to a CPU-time clock, the call shall fail.

The clock attribute is the clock ID of the clock that shall be used to measure the timeout service of pthread_cond_timedwait(). The default value of the clock attribute shall refer to the system clock, which is CLOCK_REALTIME.

The supported values of clock_id are CLOCK_REALTIME and CLOCK_MONOTONIC. CLOCK_MONOTONIC_RAW is also accepted, and is handled as an alias of CLOCK_MONOTONIC. For any other value, including CPU-time clocks, pthread_condattr_setclock() fails with EINVAL.

The behavior is undefined if the value specified by the attr argument to pthread_condattr_getclock() or pthread_condattr_setclock() does not refer to an initialized condition variable attributes object.

Return value

If successful, the pthread_condattr_getclock() function shall return zero and store the value of the clock attribute of attr into the object referenced by the clock_id argument. Otherwise, an error number shall be returned to indicate the error.

If successful, the pthread_condattr_setclock() function shall return zero; otherwise, an error number shall be returned to indicate the error.

Errors

The pthread_condattr_setclock() function may fail if:

  • EINVAL - The value specified by clock_id does not refer to a known clock, or is a CPU-time clock.

These functions shall not return an error code of EINTR.

POSIX deviations

No POSIX deviations discovered.