diff options
Diffstat (limited to 'litmus/locking.c')
-rw-r--r-- | litmus/locking.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/litmus/locking.c b/litmus/locking.c index 728b56835cf7..e9e682adc2c9 100644 --- a/litmus/locking.c +++ b/litmus/locking.c | |||
@@ -119,6 +119,20 @@ struct task_struct* waitqueue_first(wait_queue_head_t *wq) | |||
119 | return NULL; | 119 | return NULL; |
120 | } | 120 | } |
121 | 121 | ||
122 | struct task_struct* waitqueue_first_and_remove(wait_queue_head_t *wq) | ||
123 | { | ||
124 | wait_queue_t *q; | ||
125 | struct task_struct* t = NULL; | ||
126 | |||
127 | if(waitqueue_active(wq)) | ||
128 | { | ||
129 | q = list_entry(wq->task_list.next, | ||
130 | wait_queue_t, task_list); | ||
131 | t = (struct task_struct*) q->private; | ||
132 | __remove_wait_queue(wq, q); | ||
133 | } | ||
134 | return(t); | ||
135 | } | ||
122 | 136 | ||
123 | #else | 137 | #else |
124 | 138 | ||