From: Kazuhiro NISHIYAMA Date: 2000-10-17T09:07:24+09:00 Subject: [ruby-dev:11252] Re: $SAFE=4 で Thread.new On Mon, 16 Oct 2000 15:54:25 +0900 matz@zetabits.com (Yukihiro Matsumoto) wrote: > 既に書きましたが、$SAFE = 4ではabort_on_exceptionが有効でな > くなる方が現実的ではないですか? ということは例外が起こったときに abort_on_exception かどうかは 以下のような順番で見ていくようになるということでしょうか? $SAFE = 4 なら false(相当) (これが増える) -d なら true(相当) Thread.current.abort_on_exception の値 Thread.abort_on_exception の値 Thread.newの時に親スレッドのThread.current.abort_on_exceptionが 新しいThreadのThread.current.abort_on_exceptionになると思って いたのですが。 % cat t.rb Thread.current.abort_on_exception=true Thread.new { p Thread.current.abort_on_exception }.join % ruby -v t.rb ruby 1.6.2 (2000-10-16) [i586-linux] false % ruby -ve '$SAFE=4;Thread.current.abort_on_exception=false' ruby 1.6.2 (2000-10-16) [i586-linux] -e:1:in `abort_on_exception=': Insecure operation `abort_on_exception=' at level 4 (SecurityError) from -e:1 % Thread.abort_on_exceptionとThread.current.abort_on_exceptionが 違うときにThread.current.abort_on_exception=相当のことが できてしまうことになると思うのですが。 --- ZnZ(ゼット エヌ ゼット) 西山和広(Kazuhiro NISHIYAMA) mailto:zn@mbf.nifty.com