diff options
author | Glenn Elliott <gelliott@cs.unc.edu> | 2012-09-17 19:31:04 -0400 |
---|---|---|
committer | Glenn Elliott <gelliott@cs.unc.edu> | 2012-09-17 19:34:45 -0400 |
commit | d9b5000b74bbc468624f877495443b33f9511922 (patch) | |
tree | c0efc70114f208916f0b0b32f85d8c80ab25b89e /include/litmus/locking.h | |
parent | b247fd41c493e7bd3cd33cb1c4b7c46420d16364 (diff) |
Fixed three bugs with aux threads and nested locks
Fixes two bugs with nested locks:
1) List of aux threads could become corrupted.
-- moved modifications to be within scheduler lock.
2) Fixed bad EDF comparison ordering that could lead
to schedule thrashing in an infinite loop.
3) Prevent aux threads from inheriting a priority from
a task that is blocked on a real-time litmus lock.
(since the aux threads can't possibly hold these locks,
we don't have to worry about inheritance.)
Diffstat (limited to 'include/litmus/locking.h')
-rw-r--r-- | include/litmus/locking.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/include/litmus/locking.h b/include/litmus/locking.h index 296bbf6f7af0..4a5f198a0407 100644 --- a/include/litmus/locking.h +++ b/include/litmus/locking.h | |||
@@ -156,5 +156,8 @@ struct litmus_lock_ops { | |||
156 | #endif | 156 | #endif |
157 | 157 | ||
158 | 158 | ||
159 | void suspend_for_lock(void); | ||
160 | |||
161 | |||
159 | #endif | 162 | #endif |
160 | 163 | ||