git: kernel - Add per-process token, adjust signal code to use it.

Matthew Dillon dillon at crater.dragonflybsd.org
Fri Feb 11 14:54:39 PST 2011


commit 5686ec5a3d0bf6c0ae72cf58ad9b957b4ea71c1a
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Fri Feb 11 14:47:58 2011 -0800

    kernel - Add per-process token, adjust signal code to use it.
    
    * Add proc->p_token and use it to interlock signal-related operations.
    
    * Remove the use of proc_token in various signal paths.  Note that proc_token
      is still used in conjuction with pfind().
    
    * Remove the use of proc_token in CURSIG*()/issignal() sequences, which
      also removes its use in the tsleep path and the syscall path.  p->p_token
      is use instead.
    
    * Move the automatic interlock in the tsleep code to before the CURSIG code,
      fixing a rare race where a SIGCHLD could race against a parent process
      in sigsuspend().  Also acquire p->p_token here to interlock LWP_SINTR
      handling.

Summary of changes:
 sys/kern/init_main.c         |    1 +
 sys/kern/kern_checkpoint.c   |    4 +-
 sys/kern/kern_exit.c         |    3 +-
 sys/kern/kern_fork.c         |    1 +
 sys/kern/kern_sig.c          |   72 ++++++++++++++++++++++++-----------------
 sys/kern/kern_synch.c        |   58 ++++++++++++++++++++-------------
 sys/kern/sys_process.c       |   29 ++++++++++++++++-
 sys/sys/proc.h               |    1 +
 sys/sys/signal2.h            |    5 ++-
 sys/vfs/procfs/procfs_ctl.c  |    2 +
 sys/vfs/procfs/procfs_subr.c |    4 ++
 11 files changed, 122 insertions(+), 58 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/5686ec5a3d0bf6c0ae72cf58ad9b957b4ea71c1a


-- 
DragonFly BSD source repository





More information about the Commits mailing list