Suspend a thread for a given number of microseconds
#include <unistd.h> int usleep( useconds_t useconds );
libc
Use the -l c option to qcc to link against this library. This library is usually included automatically.
The usleep() function suspends the calling thread until useconds microseconds of realtime have elapsed, or until a signal that isn't ignored is received. The time spent suspended could be longer than the requested amount due to the nature of time measurement (see the Tick, Tock: Understanding the Neutrino Microkernel's Concept of Time chapter of the QNX Neutrino Programmer's Guide), or due to the scheduling of other, higher-priority threads.
If useconds is 0, usleep() has no effect.
/* * The following program sleeps for the * number of microseconds specified in argv[1]. */ #include <stdlib.h> #include <unistd.h> int main( int argc, char **argv ) { useconds_t microseconds; microseconds = (useconds_t)strtol( argv[1], NULL, 0 ); if( usleep( microseconds ) == 0 ) { return EXIT_SUCCESS; } return EXIT_FAILURE; }
Safety: | |
---|---|
Cancellation point | Yes |
Interrupt handler | No |
Signal handler | Yes |
Thread | Yes |
alarm(), delay(), nanosleep(), sigaction(), sleep(), timer_create(), timer_delete(), timer_getoverrun(), timer_gettime(), timer_settime(), ualarm()
Tick, Tock: Understanding the Neutrino Microkernel's Concept of Time chapter of the QNX Neutrino Programmer's Guide