git: DragonFly_RELEASE_5_8 kernel - Fix rare wait*() deadlock

Matthew Dillon dillon at crater.dragonflybsd.org
Fri Feb 28 09:16:46 PST 2020


commit b6e9d95d54168ebc375ad99e14c039d88869f10b
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Fri Feb 14 21:37:32 2020 -0800

    kernel - Fix rare wait*() deadlock
    
    * It is possible for the kernel to deadlock two processes or process
      threads attempting to wait*() on the same pid.
    
    * Fix by adding a bit of magic to give ownership of the reaping
      operation to one of the waiters, and causing the other waiters
      to skip/reject that pid.

Summary of changes:
 sys/kern/kern_exit.c | 19 +++++++++++++++++++
 sys/kern/kern_proc.c | 52 +++++++++++++++++++++++++++++++++++++++++++++-------
 sys/sys/proc.h       |  5 +++++
 3 files changed, 69 insertions(+), 7 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/b6e9d95d54168ebc375ad99e14c039d88869f10b


-- 
DragonFly BSD source repository



More information about the Commits mailing list