pthread_rwlockattr_setclock()

Updated: April 19, 2023

Set the clock attribute of a read-write lock attribute object

Synopsis:

#include <pthread.h>

int pthread_rwlockattr_setclock( 
                     pthread_rwlockattr_t * attr, 
                     clockid_t id );

Arguments:

attr
A pointer to the pthread_rwlockattr_t object for which you want to set the clock. You must have initialized this object by calling pthread_rwlockattr_init() before calling pthread_rwlockattr_setclock().
id
A clockid_t object that specifies the ID of the clock that you want to use for pthread_rwlock_timedrdlock() or pthread_rwlock_timedwrlock(); 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 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_rwlockattr_setclock() function sets the clock attribute in an initialized attributes object referenced by attr.

The clock attribute is the clock ID of the clock that's used (as a QNX Neutrino extension) to measure the timeout service of pthread_rwlock_timedrdlock() or pthread_rwlock_timedwrlock(). The default value of the clock attribute is CLOCK_REALTIME.

Returns:

EOK
Success.

Classification:

QNX Neutrino

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