pthread_condattr_setclock()

Updated: April 19, 2023

Set the clock attribute of a condition-variable attribute object

Synopsis:

#include <pthread.h>

int pthread_condattr_setclock( 
                     pthread_condattr_t * attr, 
                     clockid_t id );

Arguments:

attr
A pointer to the pthread_condattr_t object for which you want to set the clock. You must have initialized this object by calling pthread_condattr_init() before calling pthread_condattr_setclock().
id
A clockid_t object that specifies the ID of the clock that you want to use for the condition variable; one of:
  • CLOCK_REALTIME — the standard POSIX-defined clock. Timers based on this clock wake up the processor if it's in a power-saving mode.
  • CLOCK_SOFTTIME — (a QNX Neutrino extension) this clock is active only when the processor isn't in a power-saving mode. For example, an application using a CLOCK_SOFTTIME timer to sleep wouldn't wake up the processor when the application was due to wake up. This will allow the processor to enter a power-saving mode.

    While the processor isn't in a power-saving mode, CLOCK_SOFTTIME behaves the same as CLOCK_REALTIME.

  • CLOCK_MONOTONIC — this clock always increases at a constant rate and can't be adjusted.

For more information about the different clocks, see Other clock sources in the Clocks, Timers, and Getting a Kick Every So Often chapter of Getting Started with QNX Neutrino.

Library:

libc

Use the -l c option to qcc to link against this library. This library is usually included automatically.

Description:

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

The clock attribute is the clock ID of the clock that you want to use to measure the timeout service of pthread_cond_timedwait(). The default value of the clock attribute refers to the system clock.

Returns:

EOK
Success.
EINVAL
The clock ID doesn't refer to a known clock or refers to a CPU-time clock.

Classification:

POSIX 1003.1

Safety:  
Cancellation point No
Interrupt handler No
Signal handler Yes
Thread Yes