[M3commit] CVS Update: cm3

Antony Hosking hosking at elego.de
Tue Feb 12 04:54:43 CET 2008


CVSROOT:	/usr/cvs
Changes by:	hosking at birch.	08/02/12 04:54:43

Modified files:
	cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 

Log message:
	Fix longstanding race in InitMutex and InitCondition.  This remedies problem
	with m3tests/src/p0/p007 as reported on FreeBSD4, and fixes a reported error
	on Solaris as well.  FreeBSD4 pthread-based threading now should be
	functionally equivalent to other pthread platforms (I386_DARWIN, PPC_DARWIN,
	SOLgnu, SOLsun, LINUXLIBC6).
	
	Fold thread mutex into the thread object itself to avoid an extra allocation.
	Thread.T now inherits from MUTEX.
	
	Rework Thread.Wait/AlertWait to wait using mutex argument instead of condition
	mutex -- this is sensible and avoids unnecessary additional Acquire/Release.
	Condition mutex is still used to protect the condition thread queue as
	necessary.
	
	Fix debug output of state change information.  Don't print Stopped/Started from
	SignalHandler since this breaks async-safety of signal handler code.




More information about the M3commit mailing list