diff options
author | Matthew Wilcox <matthew@wil.cx> | 2008-03-14 13:43:13 -0400 |
---|---|---|
committer | Matthew Wilcox <willy@linux.intel.com> | 2008-03-14 14:41:09 -0400 |
commit | 3195e6378704aea0ce5a467e0d4fdf4bfe61fe64 (patch) | |
tree | e131faf16c09555b6d7905ecf958009c5024a3e4 /include | |
parent | 0b46abcd13eccf64de7eef386688443687641c53 (diff) |
Add down_timeout and change ACPI to use it
ACPI currently emulates a timeout for semaphores with calls to
down_trylock and sleep. This produces horrible behaviour in terms of
fairness and excessive wakeups. Now that we have a unified semaphore
implementation, adding a real down_trylock is almost trivial.
Signed-off-by: Matthew Wilcox <willy@linux.intel.com>
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/semaphore.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/include/linux/semaphore.h b/include/linux/semaphore.h index 88f2a28cc0f1..a107aebd9148 100644 --- a/include/linux/semaphore.h +++ b/include/linux/semaphore.h @@ -75,6 +75,12 @@ extern int __must_check down_killable(struct semaphore *sem); extern int __must_check down_trylock(struct semaphore *sem); /* + * As down(), except this function will return -ETIME if it fails to + * acquire the semaphore within the specified number of jiffies. + */ +extern int __must_check down_timeout(struct semaphore *sem, long jiffies); + +/* * Release the semaphore. Unlike mutexes, up() may be called from any * context and even by tasks which have never called down(). */ |