The
usleep()
function suspends execution of the calling thread until either
microseconds
microseconds have elapsed or a signal is delivered to the thread and its
action is to invoke a signal-catching function or to terminate the
process.
System activity may lengthen the sleep by an indeterminate amount.
This function is implemented using
nanosleep(2)
by pausing for
microseconds
microseconds or until a signal occurs.
Consequently, in this implementation,
sleeping has no effect on the state of process timers,
and there is no special handling for SIGALRM.