FYI on i386/linux a part of valgrind should be able to help debug multi-threading programs:

$ valgrind --skin=helgrind parrot t.pasm
[ ... ]
==26713== Possible data race reading variable at 0x4141F8B0
==26713==    at 0x80CDCCE: runops_slow_core (src/runops_cores.c:115)

That one is obviously ok (different threads are reading the ops image).
But there are a lot of other possible races mainly in interpreter destruction, which I didn't look at yet.


leo



Reply via email to