Hi:<br>Im trying to execute the following program with the Pthread cvs head implementation and I got this when executing the program:<br><br>danielb@danielb-desktop:~/as207/code/m3gdb$ LINUXLIBC6/Main<br>Entre dos enteros6 7<br>Estadisticas del Heap<br>HEAP: 0xb73d2000 .. 0xb7412000 => 0.2 Mbytes<br><br><br>***<br>*** runtime error:<br>*** <*ASSERT*> failed.<br>*** file "../src/thread/PTHREAD/ThreadPThread.m3", line 992<br>***<br><br>Aborted<br>danielb@danielb-desktop:~/as207/code/m3gdb$<br><br>The assert violated in m3core/thread/PTHREAD/ThreadPthread.m3 is this:<br>PROCEDURE ProcessOther (act: Activation; p: PROCEDURE (start, stop: ADDRESS)) =<br> (* LL=activeMu *)<br> VAR<br> sp: ADDRESS;<br> state: RTMachine.ThreadState;<br> BEGIN<br> <*ASSERT act.state = ActState.Stopped*><br><br><br>The source code of the little program is
this:<br><br>MODULE Main;<br><br>IMPORT SIO;<br>IMPORT RTHeapStats;<br>IMPORT RTutils;<br>IMPORT RTHeapDebug;<br>VAR<br>varA, varB, varC: INTEGER;<br><br><br>PROCEDURE multiplicar(a,b: INTEGER): INTEGER=<br> VAR<br> varC: INTEGER;<br>BEGIN<br> varC:=a*b;<br> RETURN varC;<br>END multiplicar;<br><br><br>BEGIN<br><br> SIO.PutText("Entre dos enteros");<br> varA:=SIO.GetInt();<br> varB:=SIO.GetInt();<br> varC:=multiplicar(varA,varB);<br> SIO.PutText("Estadisticas del Heap");<br> RTHeapDebug.CheckHeap();<br>
RTHeapStats.ReportReachable();<br>(* RTutils.Heap(FALSE,RTutils.HeapPresentation.ByTypecode,TRUE,LAST(CARDINAL));*)<br> SIO.PutInt(varC);<br><br>END Main.<br><br>According to the draft book of Michael Dagenais Building Distributed OO Applications: Modula-3 Objects at Work, RTHeapStats.ReportReachable()<br>" ... is called to determine the number<br>of active, reachable, objects (i.e. those which would not be<br>garbage collected). Of the 1980 objects on the heap, only slightly more than half are still alive."<br><br>According to the interface documentation: <br> "reports the number of reachable objects and bytes from each compilation unit, thread stack, and the individual roots that reach the most bytes. The report is written to stderr. The Modula-3 process is frozen during the scanning and reporting."<br><br>Obviously with the previous version of pthread the things were working fine, also
with user level implementation<br><br>Thanks, <br><br>Daniel Benavides<br><p>
<hr size=1><br><font face="Verdana" size="-2">Sé un Mejor Amante del Cine<br>¿Quieres saber cómo? <a href="http://us.rd.yahoo.com/mail/es/tagline/beabetter/*http://advision.webevents.yahoo.com/reto/entretenimiento.html">¡Deja que otras personas te ayuden!
</a>.<br></font>