<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 12pt;
font-family:Calibri
}
--></style></head>
<body class='hmmessage'><div dir='ltr'>Here is another implementation to consider:<div><br></div><div><a href="https://github.com/boostorg/thread/blob/develop/include/boost/thread/win32/condition_variable.hpp" target="_blank">https://github.com/boostorg/thread/blob/develop/include/boost/thread/win32/condition_variable.hpp</a></div><div><br></div><div> - Jay<br><br><br><div><hr id="stopSpelling">From: jay.krell@cornell.edu<br>To: m3devel@elegosoft.com<br>Date: Tue, 5 Jul 2016 08:19:23 +0000<br>Subject: [M3devel] purported condition variable problems on Win32?<br><br>

<style><!--
.ExternalClass .ecxhmmessage P {
padding:0px;
}

.ExternalClass body.ecxhmmessage {
font-size:12pt;
font-family:Calibri;
}

--></style>
<div dir="ltr"><div> https://sourceforge.net/p/pthreads4w/code/ci/master/tree/README.CV</div><div><br></div><div> vs.</div><div><br></div><div>http://www.cs.wustl.edu/~schmidt/win32-cv-1.html</div><div> </div><div> vs.</div><div> </div><div> https://modula3.elegosoft.com/cgi-bin/cvsweb.cgi/cm3/m3-libs/m3core/src/thread/WIN32/ThreadWin32.m3?rev=1.210.2.1;content-type=text%2Fplain</div><div> </div><div> </div><div> I wrote this:</div><div> </div><div> PROCEDURE XWait(m: Mutex; c: Condition; act: Activation;</div><div>                alertable: BOOLEAN) RAISES {Alerted} =</div><div>  (* LL = m on entry and exit, but not for the duration</div><div>   * see C:\src\jdk-6u14-ea-src-b05-jrl-23_apr_2009\hotspot\agent\src\os\win32\Monitor.cpp</div><div>   * NOTE that they merge the user lock and the condition lock.</div><div>   * http://www.cs.wustl.edu/~schmidt/win32-cv-1.html</div><div>   *   "3.3. The Generation Count Solution"</div><div>   *)</div><div>   </div><div><br></div><div> Do we have the problems described in README.CV?</div><div><br></div><div> </div><div> I haven't looked through the ACE code to see</div><div> to what extent they resemble solution 3.3, or if they</div><div> changed as a result of this discussion -- which I admit I don't understand</div><div>and haven't read closely.</div><div><br></div><div><br></div><div>Spurious wakeups are ok, though should be minimized.</div><div> </div><div><br></div><div>I'd still rather not drop pre-Vista support but I realize it becomes more interesting as time advances.</div><div><br></div><div> </div><div> Thank you,</div><div>  - Jay</div>                                       </div>
<br>_______________________________________________
M3devel mailing list
M3devel@elegosoft.com
https://m3lists.elegosoft.com/mailman/listinfo/m3devel</div></div>                                    </div></body>
</html>