thrd_sleep()

QNX SDP8.0C Library ReferenceAPIDeveloper

Make a thread sleep

Synopsis:

#include <threads.h>
#include <time.h>

int thrd_sleep( const struct timespec *duration,
                struct timespec *remaining );

Arguments:

duration
A pointer to a timespec structure that specifies the requested time to sleep, relative to the current time.
remaining
NULL, or a pointer to a timespec in which the function can store the amount of time remaining in an interval.

If remaining isn't NULL, the timespec structure referenced by it is updated to contain the amount of time remaining in the interval (the requested time minus the time actually slept). If it's NULL, the remaining time isn't returned.

Library:

libc

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

Description:

The thrd_sleep() function suspends the current thread from execution until either the time interval specified by the duration argument has elapsed, or a signal is delivered to the calling thread, and the signal's action is to invoke a signal-catching function or terminate the process. This function always uses CLOCK_REALTIME.

The suspension time may be longer than requested because the argument value is rounded up to a multiple of the sleep resolution (see the Understanding the Microkernel's Concept of Time chapter of the QNX OS Programmer's Guide) or because of scheduling and other system activity. Except for the case of being interrupted by a signal, the suspension time isn't less than the time interval specified by duration, as measured by the CLOCK_REALTIME clock.

Using the thrd_sleep() function has no effect on the action or blockage of any signal.

Returns:

Zero if the requested time has elapsed, or -1 on failure or when thrd_sleep() has been interrupted by a signal.

Classification:

C11

Safety:
Cancellation pointYes
Signal handlerYes
ThreadYes
Page updated: