---
name: "wait_event_interruptible_locked"
section: "9"
platform: "linux"
package: "linux-manual-3.16"
version: "3.16.56-1+deb8u1"
release: "Debian 8 (Jessie)"
platforms: ["linux"]
url: "https://new.carta.tech/wait_event_interruptible_locked"
---

# wait\_event\_interruptible\_locked(9)

sleep until a condition gets true

## NAME

wait\_event\_interruptible\_locked - sleep until a condition gets true

## SYNOPSIS

**wait\_event\_interruptible\_locked(***wq***,** *condition***);**

## ARGUMENTS

*wq*

the waitqueue to wait on

*condition*

a C expression for the event to wait for

## DESCRIPTION

The process is put to sleep (TASK\_INTERRUPTIBLE) until the *condition* evaluates to true or a signal is received. The *condition* is checked each time the waitqueue *wq* is woken up.

It must be called with wq.lock being held. This spinlock is unlocked while sleeping but *condition* testing is done while lock is held and when this macro exits the lock is held.

The lock is locked/unlocked using **spin\_lock**/**spin\_unlock** functions which must match the way they are locked/unlocked outside of this macro.

**wake\_up\_locked** has to be called after changing any variable that could change the result of the wait condition.

The function will return -ERESTARTSYS if it was interrupted by a signal and 0 if *condition* evaluated to true.

## COPYRIGHT
