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
Like0
Like0Like0Like0Like0Like0Like0Like0Like0