[M3commit] CVS Update: cm3

Jay Krell jkrell at elego.de
Tue Sep 29 17:34:35 CEST 2009


CVSROOT:	/usr/cvs
Changes by:	jkrell at birch.	09/09/29 17:34:35

Modified files:
	cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 

Log message:
	change:
	
	InnerWait:
	..
	Leave(giant)
	UnlockMutex:
	TlsGetValue()
	Enter(giant)
	do stuff
	Leave(giant)
	
	to:
	
	InnerWait:
	..
	UnlockMutex:
	TlsGetValue()
	Enter(giant) (recursive now)
	do stuff
	Leave(giant)
	Leave(giant)
	
	This increases the critical section
	ever so slightly, which can't be too bad,
	and increases atomicity, which can't be bad.
	
	Juno now fails rarely, but not never.
	Sometimes it hangs.
	Sometimes it has an array access out of bounds.
	
	Assuming m.release() is UnlockMutex.
	
	Renaming the mutex to "giant" really does make
	it easier to understand.




More information about the M3commit mailing list