Bug #7878 closed
Status changed from Open to Assigned
Assignee set to ko1 (Koichi Sasada)
なぜ私が、と思ったんですが、遠藤さんいい読みですね。
これは、
c_method_foo(){
while(1){ rb_funcall(c_method_bar); }
}
のように、foo, bar が両方とも C メソッドで、foo が bar を無限に呼ぶ、という段階で CHECK_INTS が入る余地がありませんでした。これは、ちょっと不味いバグなので直します。ううん、このタイミングでこれか。
Status changed from Assigned to Closed
% Done changed from 0 to 100
This issue was solved with changeset r39308.
Shyouhei, thank you for reporting this issue.
Your contribution to Ruby is greatly appreciated.
May Ruby be with you.
vm_eval.c (vm_call0_body): check interrupts after method dispatch
from C methods. [Bug #7878 ]
Status changed from Closed to Assigned
Assignee changed from ko1 (Koichi Sasada) to mame (Yusuke Endoh)
r39308 で取り急ぎ対応しました。
mameさん
backport してもいいでしょうか。
Assignee changed from mame (Yusuke Endoh) to ko1 (Koichi Sasada)
ko1 (Koichi Sasada) wrote:
なぜ私が、と思ったんですが、遠藤さんいい読みですね。
RUBY_VM_CHECK_INTS なんだから笹田さんでしょう。
ko1 (Koichi Sasada) wrote:
r39308 で取り急ぎ対応しました。
mameさん
backport してもいいでしょうか。
RUBY_VM_CHECK_INTS したらまずいところで RUBY_VM_CHECK_INTS してしまう副作用がないかが大変気になる(具体的に心当たりがあるわけではない)のですが、大丈夫ですかね? 自信があるなら OK です。
--
Yusuke Endoh mame@tsg.ne.jp
(2013/02/19 21:20), mame (Yusuke Endoh) wrote:
なぜ私が、と思ったんですが、遠藤さんいい読みですね。
RUBY_VM_CHECK_INTS なんだから笹田さんでしょう。
てっきり、Lazy cycle 内でなんか凄いことをやっているのかと思っておりま
した。enum.c のほうに変更入れるなら私じゃないだろう、と。
ko1 (Koichi Sasada) wrote:
r39308 で取り急ぎ対応しました。
mameさん
backport してもいいでしょうか。
RUBY_VM_CHECK_INTS したらまずいところで RUBY_VM_CHECK_INTS してしまう副作用がないかが大変気になる(具体的に心当たりがあるわけではない)のですが、大丈夫ですかね? 自信があるなら OK です。
これに関して、実は 1.9.3 に戻したというのが実情です RUBY_VM_CHECK_INTS
を外して綺麗になって速くなるかな、と思ったんですが、ちょっとこの挙動(C
method の繰り返しの中で rb_funcall している)を思いつかなかったので、デ
グレ対応と言えるかと思います。というわけで、自信があります。
本当は、もうちょっと綺麗になりそうだな、という手段を思いついたのです
が、怖いので 1.9.3 相当に戻す、という対応になっております。具体的には、
vm_call0_body() の冒頭、 th->passed_block をクリアした後に CHECK_INTS す
ればよい、はず。ただし、影響が読めないので、2.1 送り。
よろしくお願いします。
--
// SASADA Koichi at atdot dot net
ko1 (Koichi Sasada) wrote:
これに関して、実は 1.9.3 に戻したというのが実情です RUBY_VM_CHECK_INTS
を外して綺麗になって速くなるかな、と思ったんですが、ちょっとこの挙動(C
method の繰り返しの中で rb_funcall している)を思いつかなかったので、デ
グレ対応と言えるかと思います。というわけで、自信があります。
なるほど、とても安心できる説明ありがとうございます。
バックポートお願いします。
--
Yusuke Endoh mame@tsg.ne.jp
Status changed from Assigned to Closed
Also available in: Atom
PDF
Like 0
Like 0 Like 0 Like 0 Like 0 Like 0 Like 0 Like 0 Like 0