threads branch status update

Stefan Seifert nine at detonation.org
Fri Apr 20 17:04:04 UTC 2012


On Tuesday 17 April 2012 17:06:00 you wrote:

> Here's what I found on Solaris 11/x86 with Sun's compiler:
> 
> First, I needed to apply this patch (void functions can't return a
> value):

Thanks, applied and commited.

> Next, I needed to apply this patch to the generated file
> src/pmc/proxy.c.  I know it is generated, but I can't find where the
> erroneous lines come from.  These are all more instances of void
> functions trying to return a value.

Code for these is generated in lib/Parrot/Pmc2c/PMC/Proxy.pm
Fixed and committed.

> Then, the tests hung on t/pmc/task.t.  Here's the specific output:
> ./parrot t/pmc/task.t
> 1..6
> ok 1 - initialized
> ok 2 task1 ran
> ok 3 task2 ran
> ok 4 sub1 ran
> 
> [At this point it hangs].
> 
> I tried the examples, but I don't know what any of them are supposed
> to do, so I don't know what's expected.
> 
> ./parrot examples/threads/chameneos.pir
> going to sleep
> This is 0 and I'm Yellow
> This is 1 and I'm Blue
> This is 2 and I'm Red
> This is 3 and I'm Blue
> 
>     Then it hangs.

Could you run parrot in a debugger and send me a stacktrace of all threads of 
these hangs?

> 
> 
> ./winxed examples/threads/matrix_part.winxed
> 
>     gobbles up all available memory, doesn't print anything, and
>     hangs.
> 
> ./parrot examples/threads/moretasks.pir
> 
>     prints out lots of oks, then lots of 0s, then runs out of memory
>     and panics.

These programs run quite well on my laptop with its meager 4 GB of RAM so....I 
guess they're just not that useful on more limited machines. Just in case 
you're curious: matrix_part.winxed multiplies a 10000x10000 matrix by a vector 
using four threads. moretasks.pir simply starts 50000 tasks which busy wait 
for a variable to become 1, put their number into an array and everything 
starts again.

> ./parrot examples/threads/tasks.pir
> 
>     prints out long strings of a's and b's without stopping.  After a
>     while, I killed it.

tasks.pir should print those a's and b's for 10 seconds and then exit. If it 
continues to run there's something wrong.

> I hope this is of some help,

Oh yes, thank you very much!

Stefan
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.parrot.org/pipermail/parrot-dev/attachments/20120420/3f59f122/attachment.asc>


More information about the parrot-dev mailing list