DragonFly BSD
DragonFly commits List (threaded) for 2011-02
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

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


From: Matthew Dillon <dillon@xxxxxxxxxxxxxxxxxxxxxxx>
Date: Fri, 11 Feb 2011 14:54:05 -0800 (PST)

commit 5686ec5a3d0bf6c0ae72cf58ad9b957b4ea71c1a
Author: Matthew Dillon <dillon@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



[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]