wait_event_...e_locked_irq(9)
π€ wait_event_...e_locked_irq(9) π€
okay so this is the manpage for wait_event_interruptible_exclusive_locked_irq, and the manual name is Kernel API Manual β folded in near the top like a little name tag, bestie π«Ά Itβs giving sleep until a condition gets true, so letβs get into it π
β¨ NAME β¨
wait_event_interruptible_exclusive_locked_irq β sleep until a condition gets true π΄β
πΈ SYNOPSIS πΈ
wait_event_interruptible_exclusive_locked_irq (wq , condition );
π ARGUMENTS π
wqβ the waitqueue to wait on. This is the queue bestie is snoozing on πconditionβ a C expression for the event to wait for. Itβs the βam I awake yet?β vibe check π
π 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. Not me checking it every single time β thatβs literally the assignment π
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. So likeβ¦ the lock comes off for the nap, but the check and the exit are lock-on. Do not fumble this, fr fr ππ
The lock is locked/unlocked using spin_lock_irq/spin_unlock_irq functions which must match the way they are locked/unlocked outside of this macro. Matching energy only, no cap β‘
The process is put on the wait queue with an WQ_FLAG_EXCLUSIVE flag set thus when other process waits process on the list if this process is awaken further processes are not considered. Exclusive main character energy, periodt πβ¨
wake_up_locked has to be called after changing any variable that could change the result of the wait condition. Change the variable β call wake_up_locked, in that order, iykyk π
The function will return -ERESTARTSYS if it was interrupted by a signal and 0 if condition evaluated to true. Those are the two outcomes, bestie π
π SEE ALSO π
Kernel file ./include/linux/wait.h is in the mix, and the whole reference squad is:
waitqueue_active(9)wq_has_single_sleeper(9)wq_has_sleeper(9)wake_up_pollfree(9)wait_event(9)wait_event_freezable(9)wait_event_timeout(9)wait_event_cmd(9)wait_event_interruptible(9)wait_event_interruptible_timeout(9)wait_event_hrtimeout(9)wait_event_interruptible_hrtimeout(9)wait_event_idle(9)wait_event_idle_exclusive(9)wait_event_idle_timeout(9)wait_event_idle_exclusive_timeout(9)wait_event_interruptible_locked(9)wait_event_interruptible_locked_irq(9)wait_event_interruptible_exclusive_locked(9)wait_event_killable(9)wait_event_state(9)wait_event_killable_timeout(9)wait_event_lock_irq_cmd(9)wait_event_lock_irq(9)wait_event_interruptible_lock_irq_cmd(9)wait_event_interruptible_lock_irq(9)wait_event_interruptible_lock_irq_timeout(9)
Thatβs the whole vibe check, bestie π«Ά Source/version is ./include/linux, dated October 2026, manual wait_event_...e_locked_irq(9) β slay, go forth and lock responsibly πβ¨
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms