From: Tanaka Akira Date: 2003-05-23T07:46:32+09:00 Subject: [ruby-dev:20281] Re: dyna_vars problem? In article <1053592097.437269.23500.nullmailer@picachu.netlab.jp>, matz@ruby-lang.org (Yukihiro Matsumoto) writes: > むむむ。ではDEFER_INTSではなく、rb_thread_criticalを使うよう > にしてみましょう。 効くようになりました。 ただ思ったんですが、こうすれば SIGVTALRM による context switch は防げ るのでしょうが、自発的な context switch は防げないんじゃないでしょうか。 とりあえず、 % ruby -e 'Thread.new { loop { Object.new } }; 10000.times { ObjectSpace.define_finalizer(Object.new) {|v| p Thread.pass } }' なんてやると SIGINT も効かない状態になります。 10000 が 1000 なら私の環境では正しく終る(nil が 1000個出て来て終了する) のですが。 -- [田中 哲][たなか あきら][Tanaka Akira]