<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div apple-content-edited="true"><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><span class="Apple-style-span" style="border-collapse: separate; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; -webkit-text-decorations-in-effect: none; text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><span class="Apple-style-span" style="border-collapse: separate; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; -webkit-text-decorations-in-effect: none; text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><span class="Apple-style-span" style="border-collapse: separate; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; -webkit-text-decorations-in-effect: none; text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><span class="Apple-style-span" style="border-collapse: separate; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; -webkit-text-decorations-in-effect: none; text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><span class="Apple-style-span" style="border-collapse: separate; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; -webkit-text-decorations-in-effect: none; text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><span class="Apple-style-span" style="border-collapse: separate; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; -webkit-text-decorations-in-effect: none; text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><span class="Apple-style-span" style="border-collapse: separate; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; -webkit-text-decorations-in-effect: none; text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><span class="Apple-style-span" style="border-collapse: separate; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; -webkit-text-decorations-in-effect: none; text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><span class="Apple-style-span" style="border-collapse: separate; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; -webkit-text-decorations-in-effect: none; text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><div><span class="Apple-style-span" style="font-size: medium;"><font class="Apple-style-span" color="#0000FF" face="'Gill Sans'">Interesting. My suspicions are that I missed something in the ThreadWin32 conversion to implement LockHeap, WaitHeap sanely. I can't debug Windows threads easily, but I strongly suggest Windows threads are in need of a rewrite to improve concurrency by making use of mutex/CVs now that Win32 supports CVs.</font></span></div></span></span></span></span></span></span></span></span></div></span></div></span> </div><br><div><div>On 12 Sep 2009, at 04:53, Jay K wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><div class="hmmessage" style="font-size: 10pt; font-family: Verdana; ">I believe it was this 30 minute window, 2009-02-16 02:00 - 2009-02-16 02:30:<br> <br>2009-02-16 02:30 hosking<br><br> * m3-libs/m3core/src/runtime/POSIX/: RTProcessPosixC.c,<br> RTProcessPosixC.i3:<br><br> Tidy up.<br><br>2009-02-16 02:20 hosking<br><br> * m3-libs/m3core/src/: Csupport/VAX/dtoa.c, Csupport/big-endian/dtoa.c,<br> Csupport/little-endian/dtoa.c, convert/CConvert.i3,<br> convert/CConvert.m3, runtime/I386_DARWIN/RTThread.m3,<br> runtime/common/RTCollector.m3, runtime/common/RTHeapRep.i3,<br> runtime/common/RTOS.i3, thread/POSIX/ThreadPosix.m3,<br> thread/PTHREAD/ThreadF.i3, thread/PTHREAD/ThreadPThread.m3,<br> thread/PTHREAD/ThreadPThreadC.c, thread/PTHREAD/ThreadPThreadC.i3,<br> thread/WIN32/ThreadWin32.m3:<br><br> Clean up RTOS.LockHeap/RTOS.UnlockHeap implementations to better match underlying pthread semantics.<br> This means that RTOS.WaitHeap must be called while RTOS.LockHeap is held.<br> RTOS.BroadcastHeap can be called whether RTOS.LockHeap is held or not.<br><br>2009-02-16 02:02 hosking<br><br> * m3-libs/m3core/src/runtime/common/RTHeapMap.i3:<br><br> Expose DoWalkRef.<br><br><br> - Jay<br><br> <br><hr id="stopSpelling">From:<span class="Apple-converted-space"> </span><a href="mailto:hosking@cs.purdue.edu">hosking@cs.purdue.edu</a><br>To:<span class="Apple-converted-space"> </span><a href="mailto:jay.krell@cornell.edu">jay.krell@cornell.edu</a><br>Date: Fri, 11 Sep 2009 22:21:44 -0400<br>CC:<span class="Apple-converted-space"> </span><a href="mailto:m3devel@elegosoft.com">m3devel@elegosoft.com</a><br>Subject: Re: [M3devel] [M3commit] CVS Update: cm3<br><br><div><span class="EC_Apple-style-span" style="text-transform: none; text-indent: 0px; border-collapse: separate; font: normal normal normal 12px/normal Helvetica; white-space: normal; letter-spacing: normal; color: rgb(0, 0, 0); word-spacing: 0px; "><div style="word-wrap: break-word; "><span class="EC_Apple-style-span" style="text-transform: none; text-indent: 0px; border-collapse: separate; font: normal normal normal 12px/normal Helvetica; white-space: normal; letter-spacing: normal; color: rgb(0, 0, 0); word-spacing: 0px; "><div style="word-wrap: break-word; "><span class="EC_Apple-style-span" style="text-transform: none; text-indent: 0px; border-collapse: separate; font: normal normal normal 12px/normal Helvetica; white-space: normal; letter-spacing: normal; color: rgb(0, 0, 0); word-spacing: 0px; "><span class="EC_Apple-style-span" style="text-transform: none; text-indent: 0px; border-collapse: separate; font: normal normal normal 12px/normal Helvetica; white-space: normal; letter-spacing: normal; color: rgb(0, 0, 0); word-spacing: 0px; "><span class="EC_Apple-style-span" style="text-transform: none; text-indent: 0px; border-collapse: separate; font: normal normal normal 12px/normal Helvetica; white-space: normal; letter-spacing: normal; color: rgb(0, 0, 0); word-spacing: 0px; "><span class="EC_Apple-style-span" style="text-transform: none; text-indent: 0px; border-collapse: separate; font: normal normal normal 12px/normal Helvetica; white-space: normal; letter-spacing: normal; color: rgb(0, 0, 0); word-spacing: 0px; "><span class="EC_Apple-style-span" style="text-transform: none; text-indent: 0px; border-collapse: separate; font: normal normal normal 12px/normal Helvetica; white-space: normal; letter-spacing: normal; color: rgb(0, 0, 0); word-spacing: 0px; "><span class="EC_Apple-style-span" style="text-transform: none; text-indent: 0px; border-collapse: separate; font: normal normal normal 12px/normal Helvetica; white-space: normal; letter-spacing: normal; color: rgb(0, 0, 0); word-spacing: 0px; "><span class="EC_Apple-style-span" style="text-transform: none; text-indent: 0px; border-collapse: separate; font: normal normal normal 12px/normal Helvetica; white-space: normal; letter-spacing: normal; color: rgb(0, 0, 0); word-spacing: 0px; "><span class="EC_Apple-style-span" style="text-transform: none; text-indent: 0px; border-collapse: separate; font: normal normal normal 12px/normal Helvetica; white-space: normal; letter-spacing: normal; color: rgb(0, 0, 0); word-spacing: 0px; "><div><span class="EC_Apple-style-span" style="font-size: medium; "><font class="EC_Apple-style-span" color="#0000ff" face="'Gill Sans'">Hmmm. Not sure. Do you have the code diffs?</font></span></div></span></span></span></span></span></span></span></span></div></span></div></span></div><br><div><div>On 11 Sep 2009, at 17:28, Jay K wrote:</div><br class="EC_Apple-interchange-newline"><blockquote><span class="EC_Apple-style-span" style="text-transform: none; text-indent: 0px; border-collapse: separate; font: normal normal normal medium/normal Helvetica; white-space: normal; letter-spacing: normal; color: rgb(0, 0, 0); word-spacing: 0px; "><div class="EC_hmmessage" style="font-family: Verdana; font-size: 10pt; ">They aren't really in Trestle or ThreadWin32.<br>Well, right, often they are in ThreadWin32.<br>But not always.<br>I think it is, like, classic heap/stack corruption, via non-classic "locking not working" and gc moving stuff when it shouldn't.<br>I don't have good evidence, but it usually NOT a hang/deadlock or assertion failure, it is usually an access violation (aka SEGSIGV) which as I understand must be the result of bugs in unsafe code.<br><br>I did narrow it down a 30 minute window.<br><br> - Jay<br><br><br><hr id="EC_stopSpelling">From:<span class="EC_Apple-converted-space"> </span><a href="mailto:hosking@cs.purdue.edu">hosking@cs.purdue.edu</a><br>To:<span class="EC_Apple-converted-space"> </span><a href="mailto:rcoleburn@scires.com">rcoleburn@scires.com</a><br>Date: Fri, 11 Sep 2009 17:05:57 -0400<br>CC:<span class="EC_Apple-converted-space"> </span><a href="mailto:m3devel@elegosoft.com">m3devel@elegosoft.com</a><br>Subject: Re: [M3devel] [M3commit] CVS Update: cm3<br><br>I have my suspicions that ThreadWin32 may have similar latent bugs in synchronization similar to those I have recently shaken out of the pthreads implementation. The good thing is that my implementation there is based in part on ThreadWin32, so it can't be too far off. It is inevitable with concurrent code that you will get different behavior at each run. The easiest things to debug are thread lockups, which can usually be diagnosed by staring at dumps of all the thread state. Harder is actual crashes like you are observing. If assertions can be used to monitor program invariants then it usually can be narrowed down. Unfortunately, I am not in a position to debug the ThreadWin32 code. Any help would be appreciated. The question is whether the crashes you see are in Trestle or ThreadWin32.<div><div><br><div><span class="EC_EC_Apple-style-span" style="text-transform: none; text-indent: 0px; border-collapse: separate; font: normal normal normal 12px/normal Helvetica; white-space: normal; letter-spacing: normal; color: rgb(0, 0, 0); word-spacing: 0px; "><div style="word-wrap: break-word; "><span class="EC_EC_Apple-style-span" style="text-transform: none; text-indent: 0px; border-collapse: separate; font: normal normal normal 12px/normal Helvetica; white-space: normal; letter-spacing: normal; color: rgb(0, 0, 0); word-spacing: 0px; "><div style="word-wrap: break-word; "><span class="EC_EC_Apple-style-span" style="text-transform: none; text-indent: 0px; border-collapse: separate; font: normal normal normal 12px/normal Helvetica; white-space: normal; letter-spacing: normal; color: rgb(0, 0, 0); word-spacing: 0px; "><span class="EC_EC_Apple-style-span" style="text-transform: none; text-indent: 0px; border-collapse: separate; font: normal normal normal 12px/normal Helvetica; white-space: normal; letter-spacing: normal; color: rgb(0, 0, 0); word-spacing: 0px; "><span class="EC_EC_Apple-style-span" style="text-transform: none; text-indent: 0px; border-collapse: separate; font: normal normal normal 12px/normal Helvetica; white-space: normal; letter-spacing: normal; color: rgb(0, 0, 0); word-spacing: 0px; "><span class="EC_EC_Apple-style-span" style="text-transform: none; text-indent: 0px; border-collapse: separate; font: normal normal normal 12px/normal Helvetica; white-space: normal; letter-spacing: normal; color: rgb(0, 0, 0); word-spacing: 0px; "><span class="EC_EC_Apple-style-span" style="text-transform: none; text-indent: 0px; border-collapse: separate; font: normal normal normal 12px/normal Helvetica; white-space: normal; letter-spacing: normal; color: rgb(0, 0, 0); word-spacing: 0px; "><span class="EC_EC_Apple-style-span" style="text-transform: none; text-indent: 0px; border-collapse: separate; font: normal normal normal 12px/normal Helvetica; white-space: normal; letter-spacing: normal; color: rgb(0, 0, 0); word-spacing: 0px; "><span class="EC_EC_Apple-style-span" style="text-transform: none; text-indent: 0px; border-collapse: separate; font: normal normal normal 12px/normal Helvetica; white-space: normal; letter-spacing: normal; color: rgb(0, 0, 0); word-spacing: 0px; "><span class="EC_EC_Apple-style-span" style="text-transform: none; text-indent: 0px; border-collapse: separate; font: normal normal normal 12px/normal Helvetica; white-space: normal; letter-spacing: normal; color: rgb(0, 0, 0); word-spacing: 0px; "><div><font class="EC_EC_Apple-style-span" color="#0000ff"><font class="EC_EC_Apple-style-span" face="Gill Sans"><span class="EC_EC_Apple-style-span" style="font-family: 'Gill Sans'; color: rgb(0, 0, 255); "><span class="EC_EC_Apple-style-span" style="font-family: 'Gill Sans'; color: rgb(0, 0, 255); ">Antony Hosking</span></span></font></font><font class="EC_EC_Apple-style-span" face="Gill Sans"><span class="EC_EC_Apple-style-span" style="font-family: 'Gill Sans'; "><span class="EC_EC_Apple-style-span" style="font-family: 'Gill Sans'; "><span class="EC_EC_Apple-converted-space"> </span>|<span class="EC_EC_Apple-converted-space"> </span></span></span><span class="EC_EC_Apple-style-span" style="font-family: 'Gill Sans'; "><span class="EC_EC_Apple-style-span" style="font-family: 'Gill Sans'; ">Associate Professor</span></span><span class="EC_EC_Apple-style-span" style="font-family: 'Gill Sans'; "><span class="EC_EC_Apple-style-span" style="font-family: 'Gill Sans'; "> | Computer Science | Purdue University</span></span></font></div><div><font class="EC_EC_Apple-style-span" face="GillSans-Light"><span class="EC_EC_Apple-style-span" style="font-family: GillSans-Light; ">305 N. University Street | West Lafayette | IN 47907 | USA</span></font></div><div><font class="EC_EC_Apple-style-span" color="#0000ff" face="Gill Sans"><span class="EC_EC_Apple-style-span" style="font-family: 'Gill Sans'; color: rgb(0, 0, 255); "><span class="EC_EC_Apple-style-span" style="font-family: 'Gill Sans'; color: rgb(0, 0, 255); ">Office</span></span></font><font class="EC_EC_Apple-style-span" face="GillSans-Light"><span class="EC_EC_Apple-style-span" style="font-family: GillSans-Light; "><span class="EC_EC_Apple-style-span" style="font-family: GillSans-Light; "> +1 765 494 6001 |<span class="EC_EC_Apple-converted-space"> </span></span></span></font><font class="EC_EC_Apple-style-span" color="#0000ff" face="Gill Sans"><span class="EC_EC_Apple-style-span" style="font-family: 'Gill Sans'; color: rgb(0, 0, 255); "><span class="EC_EC_Apple-style-span" style="font-family: 'Gill Sans'; color: rgb(0, 0, 255); ">Mobile</span></span></font><font class="EC_EC_Apple-style-span" face="GillSans-Light"><span class="EC_EC_Apple-style-span" style="font-family: GillSans-Light; "><span class="EC_EC_Apple-style-span" style="font-family: GillSans-Light; "><span class="EC_EC_Apple-converted-space"> </span>+1 765 427 5484</span></span></font></div><div><font class="EC_EC_Apple-style-span" face="GillSans-Light"><br class="EC_EC_khtml-block-placeholder"></font></div></span></span></span></span></span></span></span><br class="EC_EC_Apple-interchange-newline"></span></div></span></div></span><br class="EC_EC_Apple-interchange-newline"></div><br><div><div>On 11 Sep 2009, at 16:54, Randy Coleburn wrote:</div><br class="EC_EC_Apple-interchange-newline"><blockquote><div><div>Tony:</div><div> </div><div>Will any of this make any difference on Windows platform?</div><div> </div><div>I tried a couple of days ago to update all sources and rebuild. Both Juno and Mentor still crash on both XP and Vista. If you run multiple times, you get different crash results. (So much for deterministic behavior.) Let me know if there is anything I can do to help debug/test.</div><div> </div><div>Regards,</div><div>Randy<br><br>>>> Antony Hosking <<a href="mailto:hosking@elego.de">hosking@elego.de</a>> 9/11/2009 10:48 PM >>><br>CVSROOT:/usr/cvs<br>Changes by:<a href="mailto:hosking@birch.09">hosking@birch.09</a>/09/11 22:48:37<br><br>Modified files:<br>cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3<span class="EC_Apple-converted-space"> </span><br><br>Log message:<br>Mentor and Juno finally work on I386_DARWIN.<br>***Significant overhaul of thread alerting.***<br>Invariant now is that all waiting is done on the thread's own condition<br>variable. This cleanly permits signals and alerts from any other thread.<br><br>Need to set DISPLAY=:0.0 and xhost+ to get around problems with<br>DISPLAY=/tmp/launch-XXXXXX/:0.<br><br></div></div></blockquote></div><br></div></div></div></span><br class="EC_Apple-interchange-newline"></blockquote></div><br></div></span><br class="Apple-interchange-newline"></blockquote></div><br></body></html>