Mutex#synchronize drops all StandardError

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

$B!!(Bprelude.rb $B$r8+$k$H!$(BMutex#synchronize
$B$NDj5A$O<!$N$h$&$K$J$C$F$$$^$9!’(B

def synchronize
self.lock
begin
yield
ensure
self.unlock rescue nil
end
end

$B!!$J$<$+!$8eCV(B rescue $B$K$h$C$F!$(BStandardError
$B$,0.$j$D$V$5$l$F$$$k$h$&$J(B
$B$s$G$9$,!$$3$l!$$I$&$$$&M}M3$J$s$G$7$?$C$1!)(B

$B!!(BThread#raise
$B$r<B9T$7$?%?%$%_%s%0$G!$$?$^$?$^$3$l$K0.$j$D$V$5$l$F$7(B
$B$^$C$?!$$H$$$&;vNc$,5/$3$C$F$7$^$$$^$7$?!%(B

$B!!(B…
$B$h$/$h$/9M$($F$_$k$H!$$d$O$j$3$3$GNc30$,H/@8$9$k$3$H<+BN$,$^$:$=$&(B
$B$J$s$@$h$J!%(B

$BA0ED$G$9!#(B

2012$BG/(B7$B7n(B25$BF|(B 17:53 SASADA Koichi [email protected]:

$B!!$J$<$+!$8eCV(B rescue $B$K$h$C$F!$(BStandardError
$B$,0.$j$D$V$5$l$F$$$k$h$&$J(B
$B$s$G$9$,!$$3$l!$$I$&$$$&M}M3$J$s$G$7$?$C$1!)(B

Queue$B$H(Btimeout$B$rAH$_9g$o$;$?;~$K(BThreadError$B$,H/@8$9$k$N$rKI$0$?$a(B
$B$@$C$?$h$&$G$9(B([ruby-dev:32935])$B!#(B

[ruby-dev:33008]$B$G$^$D$b$H$5$s$,(B

$B$H$j$“$($:(B rescue $BIU$1$H$-$^$7$?!#ITK~$,$”$l$P!"$5$5$@$/$s(B
($B!)(B)$B$,D>$7$F$/$l$k$G$7$g$&!#(B

$B$H=q$$$F$$$k$N$G!"(Btimeout$B$NJ}$NLdBj$,JL$NJ}K!$G2sHr$G$-$k$J$i=$@5$7$F$b(B
$B$h$$$N$G$O$J$$$G$7$g$&$+!#(B