New deadlock detection

$B!!$5$5$@$G$9!%(B

$B!!%G%C%I%m%C%/8!=P$r$9$kJ}K!$r?7$7$/<BAu$7$F$_$^$7$?!%(Btest-all
$B$,DL$C$?(B
$B$N$G!$E:IU$7$F$*Aw$j$7$^$9!%(B

$BJ}?K!’(B

  • sleeper $B$NA}8:$r!$!V%9%l%C%I$r5/$3$9?M!W$K$5$;$k$h$&$K$7$?!%(B
  • $B%G%C%I%m%C%/$N8!=P$r!$(Bliving thread num $B$H(B sleeper $B$NHf3S(B
    $B$@$1$G:Q$`$h$&$K$7$?!%(B

$BMxE@!’(B

  • deadlock $B8!=P$N%3!<%I$,?oJ,$He:No$K$J$C$?!%(B

$B$^$:$=$&$J$H$3$m!’(B

  • THREAD_INTERRUPTED $B$H$$$&>uBV$rMQ0U$7$?$N$G!$0U?^$7$J$$(B
    $B1F6A$,=P$k$+$b$7$l$J$$!%(B
  • rb_threadptr_interrupt $B$G(B th->status $B$rJQ$($F$$$k$,!$(B
    $B!!(Brace $B$,$*$-$=$&(B…$B!J$3$N4X?t$O(B GVL
    $B30$+$i$b8F$P$l$k2DG=@-$,$"$k!K!%(B

$B"*(B $B%9%l%C%I$N>uBVA+0$K$D$$$F!$(B
$B$7$C$+$j$H%I%-%e%a%s%H2=$9$kI,MW$,$"$k(B

$BHyL/$J$H$3$m!’(B

  • $B$"$^$jB.$/$O$J$i$J$+$C$?!$$H$$$&$+<c43CY$/$J$C$?(B
    $B!!!J8=:_$N$,==J,B.$$!$$H$$$&!K(B

                      $BA0(B      $B8e(B
    

vm4_thread_mutex1 0.486 0.516
vm4_thread_mutex2 0.484 0.519
vm4_thread_mutex3 0.720 0.746

$B!J%7%s%W%k$K$J$C$?$s$G!$B.$/$J$k$+$J$!!$$H4|BT$7$?$s$@$1$I!%(Bpolling
$B$N$[(B
$B$&$,B.$$$C$F$3$H$+!)!K(B

$B!!(B1.9.3
$B$K$OI]$/$FF~$l$i$l$J$$$h$&$J5$$,$7$^$9$,!$:#8e$O$3$C$A$N$[$&$,!$(B
$B8+DL$7$,NI$/$F$$$$$s$G$J$$$+!$$H$$$&5$$,$7$^$9!%:#$N$OFq$7$$$J$!!$$H$+!%(B