<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Tahoma
}
--></style></head>
<body class='hmmessage'><div dir='ltr'>
Tony please look at this further?<br><br>The error was that pthread_suspend_np ?or resume, I forget which, on FreeBSD was failing with <br><br>#define    ESRCH        3        /* No such process */<br><br><br>which really shouldn't happen.<br><br><br>Index: src/thread/PTHREAD/ThreadPThread.m3<br>===================================================================<br>RCS file: /usr/cvs/cm3/m3-libs/m3core/src/thread/PTHREAD/ThreadPThread.m3,v<br>retrieving revision 1.261<br>diff -u -r1.261 ThreadPThread.m3<br>--- src/thread/PTHREAD/ThreadPThread.m3    6 Aug 2012 09:16:01 -0000    1.261<br>+++ src/thread/PTHREAD/ThreadPThread.m3    6 Aug 2012 10:33:27 -0000<br>@@ -421,11 +421,10 @@<br> <br>     RunThread(me);<br> <br>-    me.stackbase := NIL; (* disable GC scanning of my stack *)<br>-<br>     (* remove from the list of active threads *)<br>     WITH r = pthread_mutex_lock(activeMu) DO <*ASSERT r=0*> END;<br>       <*ASSERT allThreads # me*><br>+      me.stackbase := NIL; (* disable GC scanning of my stack *)<br>       me.next.prev := me.prev;<br>       me.prev.next := me.next;<br>       WITH r = pthread_detach_self() DO <*ASSERT r=0*> END;<br><br><br><br><br><br><div><div id="SkyDrivePlaceholder"></div>> Date: Mon, 6 Aug 2012 12:36:00 +0000<br>> To: m3commit@elegosoft.com<br>> From: jkrell@elego.de<br>> Subject: [M3commit] CVS Update: cm3<br>> <br>> CVSROOT:  /usr/cvs<br>> Changes by:      jkrell@birch.   12/08/06 12:36:00<br>> <br>> Modified files:<br>>    cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 <br>> <br>> Log message:<br>>       me.stackbase := NIL inside activeMu, so that dying threads<br>>        aren't suspended/resumed<br>>  <br>>  I tried making suspend/resume always succeed if stackbase = NIL,<br>>  but that access violated in StopWorld; I don't understand.<br>>        <br>>  That is, setting it NIL outside the locks should be ok, as long<br>>   as the code inside the locks notices.<br>>     <br>>  Test case if starting Juno on I386_FREEBSD with gcc 4.7 backend.<br>>  It doesn't reproduce under a debugger.<br>>    <br>>  Note that probably FreeBSD, x86, gcc 4.7 aren't relevant.<br>>         What probably is relevant is that Juno creates many threads<br>>       and probably much garbage and heap allocations during startup.<br>> <br></div>                                       </div></body>
</html>