--- usleep.3.orig 2009-11-07 14:51:38.000000000 -0800 +++ usleep.3 2009-11-07 14:51:40.000000000 -0800 @@ -33,30 +33,34 @@ .Os .Sh NAME .Nm usleep -.Nd suspend process execution for an interval measured in microseconds +.Nd suspend thread execution for an interval measured in microseconds .Sh LIBRARY .Lb libc .Sh SYNOPSIS .In unistd.h .Ft int -.Fn usleep "useconds_t microseconds" +.Fo usleep +.Fa "useconds_t useconds" +.Fc .Sh DESCRIPTION The .Fn usleep -function suspends execution of the calling process until either -.Fa microseconds -microseconds have elapsed or a signal is delivered to the process 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. +function suspends execution of the calling thread until either +.Fa useconds +microseconds have elapsed +or a signal is delivered to the thread whose action +is to invoke a signal-catching function +or to terminate the thread or process. +The actual time slept may be longer, due to system latencies +and possible limitations in the timer resolution of the hardware. .Pp -This function is implemented using -.Xr nanosleep 2 +This function is implemented, using +.Xr nanosleep 2 , by pausing for -.Fa microseconds +.Fa useconds microseconds or until a signal occurs. Consequently, in this implementation, -sleeping has no effect on the state of process timers, +sleeping has no effect on the state of process timers and there is no special handling for SIGALRM. .Sh RETURN VALUES .Rv -std usleep