kpause(9)
- NetBSD Manual Pages
KPAUSE(9) NetBSD Kernel Developer's Manual KPAUSE(9)
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)
NetBSD 7.1.1 July 20, 2011 NetBSD 7.1.1
Powered by man-cgi (2024-03-20).
Maintained for NetBSD
by Kimmo Suominen.
Based on man-cgi by Panagiotis Christias.