aboutsummaryrefslogtreecommitdiffstats
path: root/litmus/locking.c
diff options
context:
space:
mode:
authorGlenn Elliott <gelliott@cs.unc.edu>2011-03-31 11:08:29 -0400
committerGlenn Elliott <gelliott@cs.unc.edu>2011-03-31 11:08:29 -0400
commit53c37bbcc07707f88312efca136aa239f25d775c (patch)
tree17f0adc8f3743f515d5829a37960d3eebc26b7a3 /litmus/locking.c
parentc089cad00c670bf41edecf0aed688fe8d2f43125 (diff)
parent0f6a8e02773f8c23b5b6a3dbfa044e50c9d7d811 (diff)
Merge remote branch 'origin/wip-fmlp-dequeue' into wip-k-fmlp
Conflicts: include/litmus/litmus.h
Diffstat (limited to 'litmus/locking.c')
-rw-r--r--litmus/locking.c19
1 files changed, 3 insertions, 16 deletions
diff --git a/litmus/locking.c b/litmus/locking.c
index e9e682adc2c9..cfce98e7480d 100644
--- a/litmus/locking.c
+++ b/litmus/locking.c
@@ -107,27 +107,14 @@ asmlinkage long sys_litmus_unlock(int lock_od)
107 return err; 107 return err;
108} 108}
109 109
110struct task_struct* waitqueue_first(wait_queue_head_t *wq) 110struct task_struct* __waitqueue_remove_first(wait_queue_head_t *wq)
111{ 111{
112 wait_queue_t *q; 112 wait_queue_t* q;
113 struct task_struct* t = NULL;
113 114
114 if (waitqueue_active(wq)) { 115 if (waitqueue_active(wq)) {
115 q = list_entry(wq->task_list.next, 116 q = list_entry(wq->task_list.next,
116 wait_queue_t, task_list); 117 wait_queue_t, task_list);
117 return (struct task_struct*) q->private;
118 } else
119 return NULL;
120}
121
122struct 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; 118 t = (struct task_struct*) q->private;
132 __remove_wait_queue(wq, q); 119 __remove_wait_queue(wq, q);
133 } 120 }