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.
This function can interfere with the kernel's efforts to manage power usage. 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 Microkernel's Concept of Time chapter of the BlackBerry 10 OS 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.
Last modified: 2014-06-24