I was able to reproduce the identical deadlock on Mac OS 10.5.1, though it appears to occur only ever 2 or three times that that particular test is run. I caught it in gdb, and get the info below. I'm new to the internals of Parrot, so other than seeming like a race condition, nothing jumped out at me. Let me know if I can provide more information.
-Tupshin (gdb) run "-D40 -gc-debug" /usr/src/parrot/t/stm/basic_mt_2.pir Starting program: /usr/src/parrot/parrot "-D40 -gc-debug" /usr/src/parrot/t/stm/basic_mt_2.pir ^C Program received signal SIGINT, Interrupt. 0x9681aace in __semwait_signal () (gdb) bt #0 0x9681aace in __semwait_signal () #1 0x96845306 in _pthread_cond_wait () #2 0x96844ced in pthread_cond_wait$UNIX2003 () #3 0x000b9a66 in pt_gc_wait_for_stage (interp=0x500180, from_stage=THREAD_GC_STAGE_NONE, to_stage=THREAD_GC_STAGE_MARK) at src/thread.c:987 #4 0x000ba93e in pt_DOD_start_mark (interp=0x500180) at src/thread.c:1573 #5 0x0006f024 in Parrot_dod_ms_run (interp=0x500180, flags=1) at src/gc/dod.c:1126 #6 0x000b9de7 in pt_suspend_self_for_gc (interp=0x500180) at src/thread.c:1167 #7 0x000b8b41 in pt_thread_wait (interp=0x500180) at src/thread.c:395 #8 0x000b9f10 in pt_thread_join (parent=0x500180, tid=2) at src/thread.c:1207 #9 0x001e184a in Parrot_ParrotRunningThread_nci_join (interp=0x500180, pmc=0x73cdf0) at parrotrunningthread.pmc:100 #10 0x0008fa06 in pcf_P_JO (interp=0x500180, self=0x6e3060) at src/nci.c:3781 #11 0x00165f18 in Parrot_NCI_invoke () #12 0x0001af64 in Parrot_callmethodcc_p_sc (cur_opcode=0x51cae4, interp=0x500180) at object.ops:70 #13 0x000b01bf in runops_slow_core (interp=0x500180, pc=0x51cae4) at src/runops_cores.c:211 #14 0x0007b4e3 in runops_int (interp=0x500180, offset=52) at src/interpreter.c:876 #15 0x0007bfe7 in runops (interp=0x500180, offs=52) at src/inter_run.c:104 #16 0x0007c27a in runops_args (interp=0x500180, sub=0x6e04b0, obj=0x82e048, meth_unused=0x0, sig=0x257832 "vP", ap=0xbffff43c "?\004n") at src/inter_run.c:230 #17 0x0007c3b9 in Parrot_runops_fromc_args (interp=0x500180, sub=0x6e04b0, sig=0x257832 "vP") at src/inter_run.c:299 #18 0x0006a3ec in Parrot_runcode (interp=0x500180, argc=1, argv=0xbffff554) at src/embed.c:886 #19 0x0021fa19 in imcc_run_pbc (interp=0x500180, obj_file=0, output_file=0x0, argc=1, argv=0xbffff554) at compilers/imcc/main.c:788 #20 0x002204bd in imcc_run (interp=0x500180, sourcefile=0xbffff62a "/usr/src/parrot/t/stm/basic_mt_2.pir", argc=1, argv=0xbffff554) at compilers/imcc/main.c:1069 #21 0x00001dee in main (argc=1, argv=0xbffff554) at src/main.c:62