Subject: CVS commit: src/lib/libpthread/arch
To: None <source-changes@netbsd.org>
From: Nathan J Williams <nathanw@netbsd.org>
List: source-changes
Date: 06/26/2003 01:45:33
Module Name:	src
Committed By:	nathanw
Date:		Thu Jun 26 01:45:33 UTC 2003

Modified Files:
	src/lib/libpthread/arch/alpha: pthread_switch.S
	src/lib/libpthread/arch/arm: pthread_switch.S
	src/lib/libpthread/arch/i386: pthread_switch.S
	src/lib/libpthread/arch/m68k: pthread_switch.S
	src/lib/libpthread/arch/mips: pthread_switch.S
	src/lib/libpthread/arch/powerpc: pthread_switch.S
	src/lib/libpthread/arch/sparc: pthread_switch.S
	src/lib/libpthread/arch/sparc64: pthread_switch.S
	src/lib/libpthread/arch/x86_64: pthread_switch.S

Log Message:
Adapt to pt_trapuc: change STACK_SWITCH to check for a value in pt_trapuc
and use it preferentially to a value in pt_uc, clearing it once on the new
stack. Move stores into pt_uc back to before the stack switch; storing
after the stack switch opened a one-instruction race condition where an upcall
that had just started a chain could be preempted again, and would bomb when
restarted due to its pt_uc not yet having been updated. Now that pt_trapuc
is what the upcall code writes to, it is safe to store to pt_uc before
switching stacks.

Remove obsolete pt_sleepuc code.


To generate a diff of this commit:
cvs rdiff -r1.3 -r1.4 src/lib/libpthread/arch/alpha/pthread_switch.S
cvs rdiff -r1.4 -r1.5 src/lib/libpthread/arch/arm/pthread_switch.S
cvs rdiff -r1.4 -r1.5 src/lib/libpthread/arch/i386/pthread_switch.S
cvs rdiff -r1.3 -r1.4 src/lib/libpthread/arch/m68k/pthread_switch.S
cvs rdiff -r1.4 -r1.5 src/lib/libpthread/arch/mips/pthread_switch.S
cvs rdiff -r1.6 -r1.7 src/lib/libpthread/arch/powerpc/pthread_switch.S
cvs rdiff -r1.3 -r1.4 src/lib/libpthread/arch/sparc/pthread_switch.S
cvs rdiff -r1.3 -r1.4 src/lib/libpthread/arch/sparc64/pthread_switch.S
cvs rdiff -r1.3 -r1.4 src/lib/libpthread/arch/x86_64/pthread_switch.S

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