From: Kouhei S. <ko...@co...> - 2006-06-14 14:34:47
|
須藤です. 06/06/14 に 酒井政裕 Masahiro Sakai<sa...@to...> さんは書きました: > このコードについては、Gtk.timeout_add で登録したブロックを呼び出す > gtk_m_functionがrb_protectを使っていないのがまずいので、 > それを修正すれば良いと思います。 はい,それはわかります. ただ,どう修正すればよいのかがわかりません.単にrb_protect() して例外をあげないようにすると,↓の例でも例外があがらないよ うになり,今までの動作とことなることになります. ということで,なかださんのいうように"ラップして外に送り出す" ということをしないといけないと思うのですが,それをどうすれば いいのかがわからないということです. http://www.rubyist.net/~nobu/t/20060614.html#p01 > > require "gtk2" > > > > Gtk.init > > Gtk.timeout_add(0) do > > raise "timeout" > > end > > > > Gtk.main > > こっちで落ちないのは、ruby_run()から実行されているため、 > 上のコードと異なり「例外でのジャンプ先」がちゃんとあるからです。 はい,そう思っていました. 同じ内容のコードがRubyで書いた場合とCで書いた場合で同じ ように動かないということを示したかったんです. |