January 2, 2008 KPAUSE 9

### NAME

kpause - make the calling LWP sleep

### SYNOPSIS

```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

[```EWOULDBLOCK`]
  The timeout expired.

[```ERESTART`]
  kpause(``) returned as a result of a signal with ```SA_RESTART` property.

[```EINTR`]
  kpause(``) returned due to other reasons. Typically as a result of a signal without ```SA_RESTART` property.

### SEE ALSO

sigaction(2), errno(9), condvar(9), mstohz(9), hz(9)