[prev in list] [next in list] [prev in thread] [next in thread]
List: dragonfly-commits
Subject: git: kernel - Fix a third missing wakeup() in kern_lock.c
From: Matthew Dillon <dillon () crater ! dragonflybsd ! org>
Date: 2018-08-30 16:10:45
Message-ID: 20180830161045.4BF183DFF52 () crater ! dragonflybsd ! org
[Download RAW message or body]
commit 4f29f4c6fe268c512c02bca8febda0fd7d2c987c
Author: Matthew Dillon <dillon@apollo.backplane.com>
Date: Wed Aug 29 22:10:49 2018 -0700
kernel - Fix a third missing wakeup() in kern_lock.c
* Fix a case where an lockmgr LK_EXCLUSIVE call with a
timeout blocks due to existing shared locks. If the
timeout occurs, the exclusive lock request is backed out.
However, if any new shared locks are attempted while
the EXREQ was pending (due to the exclusive priority
mechanism), those threads will block. The backout code
was not waking the blocked threads up for this situation.
* Fixed by issuing the wakeup() unconditionally for this
case. This is not a heavily traveled code path as locks
with timeouts rarely reach the actual timeout.
Summary of changes:
sys/kern/kern_lock.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/4f29f4c6fe268c512c02bca8febda0fd7d2c987c
--
DragonFly BSD source repository
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic