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