<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Verdana
}
--></style>
</head>
<body class='hmmessage'>
It'd be good to remove the giantLock from LockMutex/UnlockMutex.<BR>
Mutexes can be replaced, like in Java, with just interlocked+semaphore -- no wait list (the semaphore would have an implicit wait list) -- or similarly just a Win32 critical section.<BR>
 <BR>
 <BR>
I believe the inefficieny of ThreadWin32 having a "giantLock" need not impact folks only using locks -- it is only needed when acting on condition variables, and /possibly/ alert/alertwait (but probably not).<BR>
 <BR>
 <BR>
In looking at it, something that bugs me is "act.alertable := FALSE".<BR>
That can be outside the lock?<BR>
Or remove entirely?<BR>
And/or moved to before "RAISE Alerted"?<BR>
Or for that matter, AlertWait should always exit with it false?<BR>
And Wait should always assert it true?<BR>
And there's some redundancy there.<BR>
Basically, it should always be FALSE unless within AlertWait?<BR>
 <BR>
I'm pretty sure those later options -- alertable is generally false, and writes only need to occur within AlertWait to make it temporarily true. LockMutex could just assert that it is false.<BR>
 <BR>
 - Jay<BR>
 <BR>                                          </body>
</html>