<pre><tt><tt>Hi:<br><br>Some things besides what found with mentor:<br><br>danielb@sl11:~$ mentor @M3stackdump<br><br><br>***<br>*** runtime error:<br>***    Thread client error: attempt to release an unlocked mutex<br>***    file "ThreadPThread.m3", line 168<br>***<br><br>------------------ EXCEPTION HANDLER STACK ---------------------<br>0xa22bab80 LOCK  mutex = 0xb241b164<br>0xa22babd0 LOCK  mutex = 0xb2416c78<br>0xa22bac30 LOCK  mutex = 0xb2416d54<br>0xa22bac80 LOCK  mutex = 0xb2416cd8<br>0xa22bacd0 LOCK  mutex = 0xb2410378<br>0xa22bad20 LOCK  mutex = 0xb23fa104<br>0xa22bad70 LOCK  mutex = 0xb23fa370<br>0xa22badc0 LOCK  mutex = 0xb23fa1f4<br>0xa22bae20 LOCK  mutex = 0xb23fa288<br>0xa22bae58 RAISES {}<br>0xa22bb170 TRY-EXCEPT  {0x718ac4e9}<br>0xa22bb250 TRY-EXCEPT  {0x718ac4e9}<br>----------------------------------------------------------------<br>Cancelado<br>danielb@sl11:~$<br>   <br>I didn't debugged mentor, but I tried another program, cvsup, <br>and with GUI
 problems after a seconds the process finishes<br>but no advise of runtime error, however with no-gui It simply works well. <br><br>Also Im trying the examples of the parallel chapter of the book<br></tt></tt>"Programming in Modula-3" by Laszlo Boszormenyi & Carsten Weich, <i> <br></i><tt><tt>with the NThreads example (which you can download on the url<br>http://web.archive.org/web/19970814162826/www.ifi.uni-klu.ac.at/Modula-3/m3book/examples.html )<br>You will need the m3local library shipped and a m3makefile like this below:<br>import ("m3local")<br>implementation("NThreads")<br>program("NThreads")<br> <br>I get this on the console with the Pthread version:<br>the program will call Nl new line after a 10 is printed.<br></tt></tt>  9 10<br>  4  7  8  1  2  3  5  6  9 10<br>  4 10<br>  4  7  9  1  2  3  5  6  5  6  8  9 10<br>  1  2  3  4  7  3  4  5  6  8  6  8  9  3  4  5  7 10<br>  1 10<br>  1  2  3  4  5  6  7  8  9  7  8  9 10<br>  1  2  1  2  3  7  8  9 10<br>  4 
 5  4  5  6  7  8  9 10<br>  1  2  3  1  2  3  4  5  6  5  6  7  1  2  3  4  8  9 10<br>  5  6  7  1  2  3  4  3  4  8  1  2  5  6  7  9 10<br>  3  4  8  4  8  1  3  5  6  7  9 10<br>  9 10<br>  2  3  4  5  6  7  8  1  7  8  9 10<br>  2 10<br>  2  3  7  8  9  1  4  5  6 10<br>  2  3  7  8  9  1  9  1  4  7  8 10<br>  2  3  5  6  9  1  4  1  4  7  9 10<br>  2  3  5  6  5  6  8  9 10<br>  1  2  3  4  7  3  4  5  6  8  6  8  9  3  4  5  7 10<br>  1 10<br>  1  2  3  4  5  6  7  8  9  7  8  9 10<br>  1  2  1  2  3  7  8  9 10<br>  4  5  6  1  2  3  7  8  9 10<br>  9 10<br>  4  7  8  1  2  3  5  6  9 10<br>  4 10<br>  4  7  9  1  2  3  5  6  5  6  8  9 10<br>  1  2  3  4  7  3  4  5  6  8  6  8  9  3  4  5  7 10<br>  1 10<br>  1  2  3  4  5  6  7  8  9  7  8  9 10<br>  1  2  1  2  3  7  8  9 10<br>  4  5  6  1  2  3  7  8  9 10<br>  9 10<tt><tt> <br><br>But with the POSIX implementation, this is a extract of the out:<br>It ends according to the example until Return is
 pressed.<br><br></tt></tt>9  8  7  6  5  4  3  2  1 10<br>  9  8  7  6  5  4  3  2  1 10<br>  9  8  7  6  5  4  3  2  1 10<br>  9  8  7  6  5  4  3  2  1 10<br>  9  8  7  6  5  4  3  2  1 10<br>  9  8  7  6  5  4  3  2  1 10<br>  9  8  7  6  5  4  3  2  1 10<br>  9  8  7  6  5  4  3  2  1 10<br>  9  8  7  6  5  4  3  2  1 10<br>  9  8  7  6  5  4  3  2  1 10<br>  9  8  7  6  5  4  3  2  1 10<br>  9  8  7  6  5  4  3  2  1 10<br>  9  8  7  6  5  4  3  2  1 10<br>  9  8  7  6  5  4  3  2  1 10<br>  9  8  7  6  5  4  3  2  1 10<br>  9  8  7  6  5  4  3  2  1 10<br>  9  8  7  6  5  4  3  2  1 10<br>  9  8  7  6  5  4  3  2  1 10<br>  9  8  7  6  5  4  3  2  1 10<br>  9  8  7  6  5  4  3  2  1 10<br>Certainly, and according to the book, the first one is more expectable.<br>I would like to know your opinions about this issue.<br>Besides with import("libsio") in place of import ("m3local") on the m3makefile<br>you get the numbers in a  distribution similar to the above but the
 number of digits <br>in each line is more uniform (ten by line) on the pthread version this time.<br><br>Besides I know the Upthread.i3 interface on <br>m3-libs/m3core/src/unix/linux-libc6 has a the procedure<br><br>PROCEDURE attr_setschedparam (VAR attr: pthread_attr_t;<br>                              READONLY param: struct_sched_param): int; <br>that could be useful to change the scheduling policy, but certainly <br>I didn't find with grep in all the cm3 distro where it is used.<br>The Round Robin policy according to the documentation<br>of pthreads, is only available on process running with superuser privileges.<br> <br>Thanks,<br>Daniel Benavides<br><tt><tt><br>> Tony Hosking hosking@cs.purdue.edu wrote: <br>> <br>> A stack trace would be useful.  Perhaps you can run again with  <br>> @M3stackdump specified
 on the command line.  Alternatively, if you  <br>> run inside gdb you can show the stack dump at the point of the <br>> error  <br>> by setting a breakpoint at line 168 in ThreadPThread.m3.<br>> <br>> I notice that you are using priority scheduling -- not sure what <br>> that  <br>> will do to things.  Can you try it with round robin scheduling?<br>> <br>> On Jan 31, 2007, at 12:05 PM, Daniel Alejandro Benavides D. wrote:<br>> <br>> > Hello:<br>> ><br>> > I have compiled the cm3 cvs updated with the Pthread support <br>> under  <br>> > kubuntu 6.06 Linux. I have done this adding the value "PTHREAD" <br>> on  <br>> > the array SYSTEM_LIBORDER<br>> ><br>> > SYSTEM_LIBORDER = [ "OPENGL", "DECPEX", "MOTIF", "X11", "TCP", <br>> "ODBC",>                     "POSTGRES95", "FLEX-BISON", "LEX-<br>> YACC", "LIBC",  <br>> > "PTHREAD" ]<br>> ><br>> > and   the variable "PTHREAD"   
 : [ "-L/usr/lib", "-lpthread" ],<br>> > on the array SYSTEM_LIBS<br>> ><br>> > But when running a mentor animation I get this runtime error  <br>> > consistently about a seconds later after began an animation, then <br>> <br>> > this is the out:<br>> ><br>> > root@sl11:/home/danielb/cm3-5.4-Rc2/cm3/scripts# mentor showthread<br>> ><br>> ><br>> > ***<br>> > *** runtime error:<br>> > ***    Thread client error: attempt to release an unlocked mutex<br>> > ***    file "ThreadPThread.m3", line 168<br>> > ***<br>> ><br>> > Cancelado<br>> > root@sl11:/home/danielb/cm3-5.4-Rc2/cm3/scripts#<br>> ><br>> > This system has<br>> > "POSIX version set to 200112,<br>> > including support for priority scheduling"<br>> ><br>> > Thanks,<br>> > Daniel Benavides<br>> ><br>></tt></tt></pre><p>
                <hr size=1><br><font face="Verdana" size="-2">LLama Gratis a cualquier PC del Mundo.<br>Llamadas a fijos y móviles desde 1 céntimo por minuto.<br><a href="http://us.rd.yahoo.com/mail/es/tagline/messenger/*http://es.voice.yahoo.com/">http://es.voice.yahoo.com</a></font>