summaryrefslogtreecommitdiff
path: root/releasenotes
diff options
context:
space:
mode:
authorChris Friesen <chris.friesen@windriver.com>2017-05-24 11:30:30 -0600
committerChris Friesen <chris.friesen@windriver.com>2018-11-02 10:40:23 -0600
commit2b55da68ae45ff45cba68672cdbc24342cf115f6 (patch)
tree55cde95fb91ee9497173ac1db963397997df86fc /releasenotes
parent9584101c993747d28fd36ebbf93792c053eaaf54 (diff)
downloadoslo-concurrency-2b55da68ae45ff45cba68672cdbc24342cf115f6.tar.gz
Add support for fair locks
This adds support for a "fair" variant of the lock. When there are multiple entities within a single process that are blocked waiting for the lock the fair lock will ensure that they acquire the lock in FIFO order. For now at least, when fair locks are in use we don't support the "semaphores" argument. If external locks are enabled, the inter-process ordering will be determined by the underlying OS lock ordering and process scheduling. Change-Id: I37577becff4978bf643c65fa9bc2d78d342ea35a
Diffstat (limited to 'releasenotes')
-rw-r--r--releasenotes/notes/add-option-for-fair-locks-b6d660e97683cec6.yaml15
1 files changed, 15 insertions, 0 deletions
diff --git a/releasenotes/notes/add-option-for-fair-locks-b6d660e97683cec6.yaml b/releasenotes/notes/add-option-for-fair-locks-b6d660e97683cec6.yaml
new file mode 100644
index 0000000..ad1cd4b
--- /dev/null
+++ b/releasenotes/notes/add-option-for-fair-locks-b6d660e97683cec6.yaml
@@ -0,0 +1,15 @@
+---
+prelude: >
+ This release includes optional support for fair locks. When fair locks
+ are specified, blocking waiters will acquire the lock in the order that
+ they blocked.
+features:
+ - |
+ We now have optional support for ``fair`` locks. When fair locks are
+ specified, blocking waiters will acquire the lock in the order that they
+ blocked. This can be useful to ensure that existing blocked waiters do
+ not wait indefinitely in the face of large numbers of new attempts to
+ acquire the lock. When specifying locks as both ``external`` and ``fair``,
+ the ordering *within* a given process will be fair, but the ordering
+ *between* processes will be determined by the behaviour of the underlying
+ OS.