From: Tietew Date: 2003-11-04T13:11:57+09:00 Subject: [ruby-dev:21827] Re: load() blocks thread scheduling On Mon, 20 Oct 2003 15:53:33 +0900 In article <1066632811.794314.12972.nullmailer@picachu.netlab.jp> [[ruby-dev:21640] Re: load() blocks thread scheduling] matz@ruby-lang.org (Yukihiro Matsumoto) wrote: > |以下のコードがタイムアウトしません。Ctrl+C も効かなくなります。 > | > |require 'timeout' > |timeout(60) { load 'block.rb' } > | > |--- block.rb > |loop { } > |--- > | > |loop { Thread.pass } にするとちゃんtスレッドが切り替わるので, > |こんな感じにすれば旨く動いていますが,修正がこれでいいか自信があ > |りません。 > > 気持ちはわからないでもないですが、load中は他のスレッドをブロッ > クしないといろいろ面倒なことが起きます。が、それはどうしましょ > うねえ。 パース中はブロックしないと拙いというのは解るんですが,rb_eval に 入ってからも拙い理由が解りません。そもそも Thread.start とか呼ぶ とスレッドの切り替えは起こってしまいますし。 —[ Tietew ]—————————————————————————— メ : tietew@tietew.net / tietew@raug.net / tietew@masuclub.net ホペ: http://www.tietew.net/ Tietew Windows Lab. http://www.masuclub.net/ 鱒倶楽部 指紋: 26CB 71BB B595 09C4 0153 81C4 773C 963A D51B 8CAA