---
name: "wait_event_interruptible_lock_irq_timeout"
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_lock_irq_timeout"
---

# wait\_event\_interruptible\_lock\_irq\_timeout(9)

sleep until a condition gets true or a timeout elapses. The condition is checked under the lock. This is expected to be called with the lock taken.

## NAME

wait\_event\_interruptible\_lock\_irq\_timeout - sleep until a condition gets true or a timeout elapses. The condition is checked under the lock. This is expected to be called with the lock taken.

## SYNOPSIS

**wait\_event\_interruptible\_lock\_irq\_timeout(***wq***,** *condition***,** *lock***,** *timeout***);**

## ARGUMENTS

*wq*

the waitqueue to wait on

*condition*

a C expression for the event to wait for

*lock*

a locked spinlock\_t, which will be released before **schedule** and reacquired afterwards.

*timeout*

timeout, in jiffies

## DESCRIPTION

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

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

This is supposed to be called while holding the lock. The lock is dropped before going to sleep and is reacquired afterwards.

The function returns 0 if the *timeout* elapsed, -ERESTARTSYS if it was interrupted by a signal, and the remaining jiffies otherwise if the condition evaluated to true before the timeout elapsed.

## COPYRIGHT
