From: Tanaka Akira Date: 2002-09-22T18:54:40+09:00 Subject: [ruby-dev:18347] Re: rubicon on EWS4800 In article <1032623417.809343.2223.nullmailer@picachu.netlab.jp>, matz@ruby-lang.org (Yukihiro Matsumoto) writes: > TestThread$B$O$J$s$+%?%$%_%s%0$K0MB8$9$kItJ,$,$"$k$h$&$G$H$-$I(B > $B$-<:GT$7$^$9!#$3$l$O$=$&$$$&$b$N$@$H2r $BN.$N%=%U%H%&%'%"%3%s%5%k%?%s%H(B(Dave Thomas)$B$K$b%P%0$J$7$K$O(B > $B$+$1$J$$$[$I(BThread$B$OFq$7$$$H!#(B Thread ($BJB9T%W%m%0%i%_%s%0(B)$B$,Fq$7$$$3$H$K0[O@$,$"$k$o$1$G$O$"$j$^$;$s(B $B$,!"(B def test_safe_level t = Thread.new do assert_equals(0, Thread.current.safe_level) $SAFE=1 assert_equals(1, Thread.current.safe_level) $SAFE=2 assert_equals(2, Thread.current.safe_level) $SAFE=3 assert_equals(3, Thread.current.safe_level) $SAFE=4 assert_equals(4, Thread.current.safe_level) Thread.pass end assert_equals(0, Thread.current.safe_level) assert_equals(4, t.safe_level) t.kill end $B$H$$$&$h$&$J$N$r8+$F$7$^$&$H!"$=$&$$$&Fq$7$50JA0$NLdBj$NItJ,$b$=$l$J$j(B $B$K$"$k5$$,$7$J$$$G$b$"$j$^$;$s!#(B $SAFE=4 $B$KE~C#$9$kA0$K(B context switch $B$,$*$-$?$i(B t.safe_level $B$O(B 4$B$K$O(B $B$J$i$s$@$m$&(B... context switch $B$,$I$3$G5/$3$k$+$o$+$i$J$$$H$$$&4pK\$r(B $BL5;k$9$j$c<:GT$7$FEvA3$H$$$&$+!#(B $B$^$!!"(Bt.join $B$9$j$cD>$k$+!"$H$$$&$H(B SecurityError: Insecure: can't modify class variable $B$H$$$o$l$F$7$^$C$F!"$3$l$O$3$l$GG:$_$I$3$m$G$O$"$j$^$9!#(B -- [$BEDCf(B $BE/(B][$B$?$J$+(B $B$"$-$i(B][Tanaka Akira] $B!V$U$($m(B! $B$o$+$a$A$c$s:n@o$G$9$(C"=$B!W(B(Little Worker, $B7KM7@84](B)