sched/wait: Add wait_event_state_exclusive()
Allows exclusive waits with a custom @state. Signed-off-by: Sergey Senozhatsky <senozhatsky@chromium.org> Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org> Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
This commit is contained in:
committed by
Miklos Szeredi
parent
6be0ddb202
commit
dd6a5a71c8
@@ -965,6 +965,18 @@ extern int do_wait_intr_irq(wait_queue_head_t *, wait_queue_entry_t *);
|
||||
__ret; \
|
||||
})
|
||||
|
||||
#define __wait_event_state_exclusive(wq, condition, state) \
|
||||
___wait_event(wq, condition, state, 1, 0, schedule())
|
||||
|
||||
#define wait_event_state_exclusive(wq, condition, state) \
|
||||
({ \
|
||||
int __ret = 0; \
|
||||
might_sleep(); \
|
||||
if (!(condition)) \
|
||||
__ret = __wait_event_state_exclusive(wq, condition, state); \
|
||||
__ret; \
|
||||
})
|
||||
|
||||
#define __wait_event_killable_timeout(wq_head, condition, timeout) \
|
||||
___wait_event(wq_head, ___wait_cond_timeout(condition), \
|
||||
TASK_KILLABLE, 0, timeout, \
|
||||
|
||||
Reference in New Issue
Block a user