[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