wait_event_interruptible_exclusive_locked — sleep exclusively until a condition gets true
wait_event_interruptible_exclusive_locked ( | wq, |
condition) ; |
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.
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.
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.