NAME
kpause —
make the calling LWP
sleep
SYNOPSIS
#include <sys/proc.h>
int
kpause(
const char
*wmesg,
bool intr,
int timeo,
kmutex_t *mtx);
DESCRIPTION
kpause() makes the calling LWP sleep. It's similar to
cv_timedwait_sig(9)
without the corresponding
cv_signal(9).
kpause() can wake up spontaneously. Callers should prepare to
handle it.
-
-
- wmesg
- Specifies a string of no more than 8 characters that
describes the resource or condition associated with the call of
kpause(). The kernel does not use this argument directly
but makes it available for utilities such as
ps(1) to display.
-
-
- intr
- If true, sleep interruptably. If the LWP receives a signal,
or is interrupted by another condition such as its containing process
exiting, the wait is ended early and an error code returned.
-
-
- timeo
- Specify a timeout. It is an architecture and system
dependent value related to the number of clock interrupts per second. See
hz(9) for details. The
mstohz(9) macro can be used
to convert a timeout expressed in milliseconds to one suitable for
kpause().
Zero means no timeout.
-
-
- mtx
- Convenience and symmetry with other synchronization
operations. If not
NULL
, mtx
will be released once the LWP has prepared to sleep, and will be
reacquired before kpause() returns.
RETURN VALUES
kpause() returns 0 when waking up spontaneously. Otherwise, it
returns an error number.
ERRORS
-
-
- [
EINTR
]
- kpause() returned due to other reasons.
Typically as a result of a signal without
SA_RESTART
property.
-
-
- [
ERESTART
]
- kpause() returned as a result of a signal
with
SA_RESTART
property.
-
-
- [
EWOULDBLOCK
]
- The timeout expired.
SEE ALSO
sigaction(2),
condvar(9),
delay(9),
errno(9),
hz(9),
mstohz(9)