usleep

Heiko Wundram (Beenic) wundram at beenic.net
Fri Feb 22 13:37:33 UTC 2008


Am Freitag, 22. Februar 2008 11:28:42 schrieb Sharad Chandra:
> 	Does usleep work for you? i just saw it is implemented over nanosleep
> which passes a struct timeval to "select".

Quoting from POSIX:

"""
The usleep() function will cause the calling thread to be suspended from 
execution until either the number of real-time microseconds specified by the 
argument useconds has elapsed or a signal is delivered to the calling thread 
and its action is to invoke a signal-catching function or to terminate the 
process. The suspension time may be longer than requested due to the 
scheduling of other activity by the system.
"""

See the last sentence, specifically.

So, yes, the behaviour you're seeing is pretty much expected, simply because 
_user_ processes are scheduled in timeslices, which depend on the HZ setting 
of the kernel.

-- 
Heiko Wundram
Product & Application Development


More information about the freebsd-hackers mailing list