Sleep until a condition gets true
wait_event_cmd(wq, condition, cmd1, cmd2);
wq
the waitqueue to wait on
condition
a C expression for the event to wait for
cmd1
the command will be executed before sleep
cmd2
the command will be executed after sleep
The process is put to sleep (TASK_UNINTERRUPTIBLE) until the condition evaluates to true. 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.