Subject: CVS commit: src/lib/libpthread
To: None <source-changes@NetBSD.org>
From: Andrew Doran <ad@netbsd.org>
List: source-changes
Date: 08/04/2007 13:37:51
Module Name:	src
Committed By:	ad
Date:		Sat Aug  4 13:37:51 UTC 2007

Modified Files:
	src/lib/libpthread: pthread.c pthread_barrier.c pthread_cond.c
	    pthread_int.h pthread_lock.c pthread_mutex.c pthread_rwlock.c
	    pthread_types.h sem.c

Log Message:
Some significant performance improvements, and a fix for a race with pthread
detach/join.

- Make mutex acquire spin for a short time, as done with spinlocks.
- Make the number of spins controllable with the env var PTHREAD_NSPINS.
- Reduce the amount of time that libpthread internal spinlocks are held.
- Rely more on the barrier effects of park/unpark to avoid taking spinlocks.
- Simplify the locking around pthreads and the global queues.
- Align per-thread sync data on a 128 byte boundary.
- Offset thread stacks by a small amount to try and reduce cache thrash.


To generate a diff of this commit:
cvs rdiff -r1.68 -r1.69 src/lib/libpthread/pthread.c
cvs rdiff -r1.12 -r1.13 src/lib/libpthread/pthread_barrier.c
cvs rdiff -r1.31 -r1.32 src/lib/libpthread/pthread_cond.c
cvs rdiff -r1.42 -r1.43 src/lib/libpthread/pthread_int.h
cvs rdiff -r1.20 -r1.21 src/lib/libpthread/pthread_lock.c
cvs rdiff -r1.28 -r1.29 src/lib/libpthread/pthread_mutex.c
cvs rdiff -r1.18 -r1.19 src/lib/libpthread/pthread_rwlock.c
cvs rdiff -r1.6 -r1.7 src/lib/libpthread/pthread_types.h
cvs rdiff -r1.14 -r1.15 src/lib/libpthread/sem.c

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