[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