[#20227] dyna_vars problem? — Tanaka Akira <akr@...17n.org>

しばらく前から、稀に Ruby が core を吐くという問題を追いかけているので

15 messages 2003/05/19
[#20234] Re: dyna_vars problem? — matz@... (Yukihiro Matsumoto) 2003/05/19

まつもと ゆきひろです

[#20236] Re: dyna_vars problem? — Tanaka Akira <akr@...17n.org> 2003/05/19

In article <1053363181.529491.30320.nullmailer@picachu.netlab.jp>,

[ruby-dev:20281] Re: dyna_vars problem?

From: Tanaka Akira <akr@...17n.org>
Date: 2003-05-22 22:46:32 UTC
List: ruby-dev #20281
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]

In This Thread