|This version of this document is no longer maintained. For the latest documentation, see http://www.qnx.com/developers/docs.|
Suspend a thread until a timeout or signal occurs
#include <time.h> int nanosleep( const struct timespec* rqtp, struct timespec* rmtp );
- A pointer to a timespec structure that specifies the time interval for which you want to suspend the thread.
- NULL, or a pointer to a timespec structure where the function can store the amount of time remaining in the interval (the requested time minus the time actually slept).
Use the -l c option to qcc to link against this library. This library is usually included automatically.
The nanosleep() function causes the calling thread to be suspended from execution until either:
- The time interval specified by the rqtp argument has elapsed
- A signal is delivered to the thread, and the signal's action is to invoke a signal-catching function or terminate the process.
|The suspension time may be longer than requested because the argument value is rounded up to be a multiple of the system timer resolution (see the Tick, Tock: Understanding the Neutrino Microkernel's Concept of Time chapter of the QNX Neutrino Programmer's Guide) or because of scheduling and other system activity.|
- The requested time has elapsed.
- The nanosleep() function was interrupted by a signal (errno is set).
- All timers are in use. You'll have to wait for a process to release one.
- A fault occurred trying to access the buffers provided.
- The nanosleep() function was interrupted by a signal.
- The number of nanoseconds specified by the tv_nsec member of the timespec structure pointed to by rqtp is less than zero or greater than or equal to 1000 million.