kernel - Add per-process token, adjust signal code to use it.
authorMatthew Dillon <dillon@apollo.backplane.com>
Fri, 11 Feb 2011 22:47:58 +0000 (14:47 -0800)
committerMatthew Dillon <dillon@apollo.backplane.com>
Fri, 11 Feb 2011 22:47:58 +0000 (14:47 -0800)
commit5686ec5a3d0bf6c0ae72cf58ad9b957b4ea71c1a
tree517383539c8f5d9f64f2854e3188b8f985138b60
parentbc5587bb13c190cca35dd02e7941058c21480267
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.
sys/kern/init_main.c
sys/kern/kern_checkpoint.c
sys/kern/kern_exit.c
sys/kern/kern_fork.c
sys/kern/kern_sig.c
sys/kern/kern_synch.c
sys/kern/sys_process.c
sys/sys/proc.h
sys/sys/signal2.h
sys/vfs/procfs/procfs_ctl.c
sys/vfs/procfs/procfs_subr.c