Subject: CVS commit: src/sys
To: None <>
From: Christian Limpach <>
List: source-changes
Date: 11/02/2003 16:26:10
Module Name:	src
Committed By:	cl
Date:		Sun Nov  2 16:26:10 UTC 2003

Modified Files:
	src/sys/kern: kern_sa.c kern_sig.c kern_synch.c kern_time.c
	src/sys/sys: lwp.h savar.h

Log Message:
Cleanup signal delivery for SA processes:
General idea:  only consider the LWP on the VP for signal delivery, all
other LWPs are either asleep or running from waking up until repossessing
the VP.

- in kern_sig.c:kpsignal2: handle all states the LWP on the VP can be in
- in kern_sig.c:proc_stop: only try to stop the LWP on the VP.  All other
  LWPs will suspend in sa_vp_repossess() until the VP-LWP donates the VP.
  Restore original behaviour (before SA-specific hacks were added) for
  non-SA processes.
- in kern_sig.c:proc_unstop: only return the LWP on the VP
- handle sa_yield as case 0 in sa_switch instead of clearing L_SA, add an
  L_SA_YIELD flag
- replace sa_idle by L_SA_IDLE flag since it was either NULL or == sa_vp

Also don't output itimerfire overrun warning if the process is already
Also g/c sa_woken because it's not used.
Also g/c some #if 0 code.

To generate a diff of this commit:
cvs rdiff -r1.36 -r1.37 src/sys/kern/kern_sa.c
cvs rdiff -r1.174 -r1.175 src/sys/kern/kern_sig.c
cvs rdiff -r1.138 -r1.139 src/sys/kern/kern_synch.c
cvs rdiff -r1.77 -r1.78 src/sys/kern/kern_time.c
cvs rdiff -r1.11 -r1.12 src/sys/sys/lwp.h
cvs rdiff -r1.9 -r1.10 src/sys/sys/savar.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.