usleep.2 (2010 09)

u
usleep(2) usleep(2)
NAME
usleep - suspend execution for an interval
SYNOPSIS
#include <unistd.h>
int usleep(useconds_t useconds);
DESCRIPTION
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 activities by the system,
or because of the time spent in processing the call.
The useconds argument must be less than 1,000,000. If the value of useconds is 0, then the call has no
effect.
If a
SIGALRM signal is generated for the calling process during execution of
usleep() and if the
SIGALRM signal is being ignored or blocked from delivery, it is unspecified whether
usleep() returns
when the
SIGALRM signal is scheduled; if the signal is being blocked, it is also unspecified whether it
remains pending after usleep() returns or it is discarded.
If a
SIGALRM signal is generated for the calling process during execution of usleep(), except as a
result of a prior call to alarm(), and if the SIGALRM signal is not being ignored or blocked from
delivery, it is unspecified whether that signal has any effect other than causing
usleep() to return.
If a signal-catching function interrupts
usleep() and examines or changes either the time a SIGALRM
is scheduled to be generated, the action associated with the SIGALRM signal, or whether the SIGALRM
signal is blocked from delivery, the results are unspecified.
If a signal-catching function interrupts
usleep() and calls siglongjmp() or longjmp() to restore
an environment saved prior to the usleep() call, the action associated with the SIGALRM signal and
the time at which a SIGALRM signal is scheduled to be generated are unspecified, it is also unspecified
whether the SIGALRM signal is blocked, unless the process’s signal mask is restored as part of the
environment.
Implementations may place limitations on the granularity of timer values. For each interval timer, if the
requested timer value requires a finer granularity than the implementation supports, the actual timer
value will be rounded up to the next supported value.
Interactions between
usleep() and any of the following are unspecified: nanosleep(), setiti-
mer(), timer_create(),
timer_delete(), timer_getoverrun(),
timer_gettime(),
timer_settime(),
ualarm(), sleep().
RETURN VALUE
On successful completion,
usleep() returns 0. Otherwise, it returns 1 and sets errno to indicate the
error.
ERRORS
The
usleep() function may fail if:
[EINVAL] The time interval specified 1,000,000 or more microseconds.
APPLICATION USAGE
The usleep() function is included for its historical usage. The setitimer() function is preferred
over this function. Multi-threaded applications are recommended to use nanosleep() instead of
usleep(). usleep() is also a thread canceling point.
SEE ALSO
alarm(2), getitimer(2), nanosleep(2), sigaction(2), sleep(3C), timer_create(2), timer_delete(2),
timer_getoverrun(2), timer_gettime(2), timer_settime(2), <unistd.h>.
CHANGE HISTORY
First released in Issue 4, Version 2.
HP-UX 11i Version 3: September 2010 1 Hewlett-Packard Company 1

Summary of content (2 pages)