From: Kouhei S. <ko...@co...> - 2006-01-17 03:11:52
Attachments:
gtk-poll.diff
|
須藤です. Windows環境では,GTK+のメインループ中にRubyに処理を渡すため にgtk_idle_add()でrb_thread_wait_for()していますが,idle用関 数を登録しているために,Gtk.events_pending?が常にtrueになっ てしまいます. このため,以下のようにGtk.events_pending?を使った処理を追加 して,「時間のかかる処理中に,他の処理を行いながらメインの処 理をする」ということができません. while Gtk.events_pending? Gtk.main_iteration end ということで,Gtk.events_pending?の間だけ,idle用関数を削除 して,Gtk.events_pending?の結果にidle用関数が影響しないよう にするというのはどうでしょうか? # そろそろこの問題も解決されると嬉しいです... # http://ruby-gnome2.sourceforge.jp/ja/sfmltoj.cgi?key=/mailarchive/message.php%3Fmsg_id%3D2606902 |
From: Masao M. <mu...@hi...> - 2006-01-17 14:09:56
|
むとうです。 On Tue, 17 Jan 2006 12:11:33 +0900 (JST) Kouhei Sutou <ko...@co...> wrote: > 須藤です. > > Windows環境では,GTK+のメインループ中にRubyに処理を渡すため > にgtk_idle_add()でrb_thread_wait_for()していますが,idle用関 > 数を登録しているために,Gtk.events_pending?が常にtrueになっ > てしまいます. > > このため,以下のようにGtk.events_pending?を使った処理を追加 > して,「時間のかかる処理中に,他の処理を行いながらメインの処 > 理をする」ということができません. > > while Gtk.events_pending? > Gtk.main_iteration > end おぉ、ちょうどこれ、バグレポートであがってたやつですね。 http://sourceforge.net/tracker/index.php?func=detail&aid=1385468&group_id=53614&atid=470969 > > ということで,Gtk.events_pending?の間だけ,idle用関数を削除 > して,Gtk.events_pending?の結果にidle用関数が影響しないよう > にするというのはどうでしょうか? patchをざっとみてみたのですが、1点確認が。 __set/remove_internal_pool_func__ をRuby側に持たせる理由ってなんででしょうか? なんとなく、rbgtk.cのpoll周りの関数を全部rbgtkmain.cに移せばidle_id 含めてすっきりCだけで書けそうな気がするのですが・・・。 > # そろそろこの問題も解決されると嬉しいです... > # http://ruby-gnome2.sourceforge.jp/ja/sfmltoj.cgi?key=/mailarchive/message.php%3Fmsg_id%3D2606902 > うう、すみません。 今、Ruby-GNOME2に時間を割けていないのが実情です。 もし、どなたかが実装して頂けるなら歓迎します。 それでは。 -- .:% Masao Mutoh<mu...@hi...> |
From: Masao M. <mu...@hi...> - 2006-01-18 14:56:40
|
むとうです。 On Wed, 18 Jan 2006 14:23:19 +0900 (JST) Kouhei Sutou <ko...@co...> wrote: > 須藤です. > > In <200...@hi...> > "Re: [ruby-gnome2-devel-ja] Gtk.events_pending? on Windows" on Tue, 17 Jan 2006 22:57:15 +0900, > Masao Mutoh <mu...@hi...> wrote: > > > > ということで,Gtk.events_pending?の間だけ,idle用関数を削除 > > > して,Gtk.events_pending?の結果にidle用関数が影響しないよう > > > にするというのはどうでしょうか? > > > > patchをざっとみてみたのですが、1点確認が。 > > __set/remove_internal_pool_func__ > > をRuby側に持たせる理由ってなんででしょうか? > > ひとつはパッチが大きくなるのが嫌だったということと,もうひと > つはRuby側でこの修正が入っているかどうかを確認する手段が欲し > かった(respond_to?で調べようと思っていました)ということで > す. うーん、これはバージョン番号で確認して欲しいですね。 #CVS版を使ってるユーザにも対応したいってのは #(サポートという意味では)無しの方向で。 > > なんとなく、rbgtk.cのpoll周りの関数を全部rbgtkmain.cに移せばidle_id > > 含めてすっきりCだけで書けそうな気がするのですが・・・。 > > 方向性はこれでよいということでしょうか? 良いと思います。 > であれば,↑のようにして(__{set,remove}_internal_pool_func__ > をRuby側に見せないようにして)コミットします. よろしくお願いします。 -- .:% Masao Mutoh<mu...@hi...> |
From: Masao M. <mu...@hi...> - 2006-01-20 11:21:58
|
むとうです。 On Thu, 19 Jan 2006 00:40:15 +0900 (JST) Kouhei Sutou <ko...@co...> wrote: > 須藤です. > > コミットしました. ありがとうございます。 > ついでに,rubyインタプリタ終了時に, > g_main_context_set_poll_func()で設定したrbgtk_poolを元に戻す > ようにしておきますか? > # http://www.tom.sfc.keio.ac.jp/~sakai/d/?date=20020220#c02 > # に書いていることです. おぉ。そんなことも。 ぜひ、お願いします。 -- .:% Masao Mutoh<mu...@hi...> |
From: Kouhei S. <ko...@co...> - 2006-01-20 12:41:51
|
須藤です. In <200...@hi...> "Re: [ruby-gnome2-devel-ja] Gtk.events_pending? on Windows" on Fri, 20 Jan 2006 20:21:42 +0900, Masao Mutoh <mu...@hi...> wrote: > > ついでに,rubyインタプリタ終了時に, > > g_main_context_set_poll_func()で設定したrbgtk_poolを元に戻す > > ようにしておきますか? > > # http://www.tom.sfc.keio.ac.jp/~sakai/d/?date=20020220#c02 > > # に書いていることです. > > ぜひ、お願いします。 やっておきました. # お体はお大事に... |
From: Kouhei S. <ko...@co...> - 2006-01-18 15:40:35
|
須藤です. In <200...@hi...> "Re: [ruby-gnome2-devel-ja] Gtk.events_pending? on Windows" on Wed, 18 Jan 2006 23:56:25 +0900, Masao Mutoh <mu...@hi...> wrote: > > ひとつはパッチが大きくなるのが嫌だったということと,もうひと > > つはRuby側でこの修正が入っているかどうかを確認する手段が欲し > > かった(respond_to?で調べようと思っていました)ということで > > す. > > うーん、これはバージョン番号で確認して欲しいですね。 了解しました. > > 方向性はこれでよいということでしょうか? > > 良いと思います。 > > > であれば,↑のようにして(__{set,remove}_internal_pool_func__ > > をRuby側に見せないようにして)コミットします. > > よろしくお願いします。 コミットしました. ついでに,rubyインタプリタ終了時に, g_main_context_set_poll_func()で設定したrbgtk_poolを元に戻す ようにしておきますか? # http://www.tom.sfc.keio.ac.jp/~sakai/d/?date=20020220#c02 # に書いていることです. |
From: Kouhei S. <ko...@co...> - 2006-01-18 05:23:40
|
須藤です. In <200...@hi...> "Re: [ruby-gnome2-devel-ja] Gtk.events_pending? on Windows" on Tue, 17 Jan 2006 22:57:15 +0900, Masao Mutoh <mu...@hi...> wrote: > > ということで,Gtk.events_pending?の間だけ,idle用関数を削除 > > して,Gtk.events_pending?の結果にidle用関数が影響しないよう > > にするというのはどうでしょうか? > > patchをざっとみてみたのですが、1点確認が。 > __set/remove_internal_pool_func__ > をRuby側に持たせる理由ってなんででしょうか? ひとつはパッチが大きくなるのが嫌だったということと,もうひと つはRuby側でこの修正が入っているかどうかを確認する手段が欲し かった(respond_to?で調べようと思っていました)ということで す. > なんとなく、rbgtk.cのpoll周りの関数を全部rbgtkmain.cに移せばidle_id > 含めてすっきりCだけで書けそうな気がするのですが・・・。 方向性はこれでよいということでしょうか? であれば,↑のようにして(__{set,remove}_internal_pool_func__ をRuby側に見せないようにして)コミットします. |
From: Masao M. <mu...@hi...> - 2006-01-31 15:19:38
|
須藤さん むとうです。 今さらですがこの修正を私のWindows環境で試してみましたが、 どうも、まだ、falseになってくれないみたいです。 #Linux環境だと、一回trueが出てスクリプトが終了する。 試したスクリプトは以下です。 require 'gtk2' Gtk.init while (Gtk.events_pending?) puts Gtk.main_iteration end ご報告だけですみません。 On Tue, 17 Jan 2006 12:11:33 +0900 (JST) Kouhei Sutou <ko...@co...> wrote: > 須藤です. > > Windows環境では,GTK+のメインループ中にRubyに処理を渡すため > にgtk_idle_add()でrb_thread_wait_for()していますが,idle用関 > 数を登録しているために,Gtk.events_pending?が常にtrueになっ > てしまいます. > > このため,以下のようにGtk.events_pending?を使った処理を追加 > して,「時間のかかる処理中に,他の処理を行いながらメインの処 > 理をする」ということができません. > > while Gtk.events_pending? > Gtk.main_iteration > end > > > ということで,Gtk.events_pending?の間だけ,idle用関数を削除 > して,Gtk.events_pending?の結果にidle用関数が影響しないよう > にするというのはどうでしょうか? > > > # そろそろこの問題も解決されると嬉しいです... > # http://ruby-gnome2.sourceforge.jp/ja/sfmltoj.cgi?key=/mailarchive/message.php%3Fmsg_id%3D2606902 > -- -- .:% Masao Mutoh<mu...@hi...> |
From: Kouhei S. <ko...@co...> - 2006-02-01 12:17:54
|
須藤です. In <200...@hi...> "Re: [ruby-gnome2-devel-ja] Gtk.events_pending? on Windows" on Wed, 1 Feb 2006 00:19:23 +0900, Masao Mutoh <mu...@hi...> wrote: > 今さらですがこの修正を私のWindows環境で試してみましたが、 > どうも、まだ、falseになってくれないみたいです。 > #Linux環境だと、一回trueが出てスクリプトが終了する。 手元のLinux環境で,USE_POLL_FUNCをdefineして実験したときはう まく動いていたのですが,「本当の」Windows環境だとうまく動か ないんですか... すいません,Windows環境がなく,何が問題なのかわからないので, 私はお手上げです. |
From: Masao M. <mu...@hi...> - 2006-02-01 15:13:08
|
むとうです。 On Wed, 01 Feb 2006 21:17:38 +0900 (JST) Kouhei Sutou <ko...@co...> wrote: > 須藤です. > > In <200...@hi...> > "Re: [ruby-gnome2-devel-ja] Gtk.events_pending? on Windows" on Wed, 1 Feb 2006 00:19:23 +0900, > Masao Mutoh <mu...@hi...> wrote: > > > 今さらですがこの修正を私のWindows環境で試してみましたが、 > > どうも、まだ、falseになってくれないみたいです。 > > #Linux環境だと、一回trueが出てスクリプトが終了する。 > > 手元のLinux環境で,USE_POLL_FUNCをdefineして実験したときはう > まく動いていたのですが,「本当の」Windows環境だとうまく動か > ないんですか... > > すいません,Windows環境がなく,何が問題なのかわからないので, > 私はお手上げです. いえいえ。一方的にお願いしちゃってすみませんでした。 時間を見つけて見てみますね(って、私が直せるのだろうか・・・苦笑) -- .:% Masao Mutoh<mu...@hi...> |
From: Masao M. <mu...@hi...> - 2006-06-29 18:56:03
|
むとうです。 この問題ですが、ようやく直せました。 glib/src/rbglib_mainloop.cで同様の処理をしていたところで イベント関数を追加していたため、gtk_events_pendingがいつまでも FALSEにならなかったのが原因でした。 で、rbgtk.cにあるpoll funcをrbglib_mainloop.cの方に統合 しました。無駄なPollが減ったのでもしかしたらちょっとは速くなる かも・・・って期待したのですがほとんど変わりませんでした(苦笑)。 試すにはCVS版のRuby/GLib, Ruby/GTKの両方とも再コンパイルする 必要があります。 #リリースに間に合った・・・。 On Thu, 2 Feb 2006 00:12:53 +0900 Masao Mutoh <mu...@hi...> wrote: > むとうです。 > > On Wed, 01 Feb 2006 21:17:38 +0900 (JST) > Kouhei Sutou <ko...@co...> wrote: > > > 須藤です. > > > > In <200...@hi...> > > "Re: [ruby-gnome2-devel-ja] Gtk.events_pending? on Windows" on Wed, 1 Feb 2006 00:19:23 +0900, > > Masao Mutoh <mu...@hi...> wrote: > > > > > 今さらですがこの修正を私のWindows環境で試してみましたが、 > > > どうも、まだ、falseになってくれないみたいです。 > > > #Linux環境だと、一回trueが出てスクリプトが終了する。 > > > > 手元のLinux環境で,USE_POLL_FUNCをdefineして実験したときはう > > まく動いていたのですが,「本当の」Windows環境だとうまく動か > > ないんですか... > > > > すいません,Windows環境がなく,何が問題なのかわからないので, > > 私はお手上げです. > > いえいえ。一方的にお願いしちゃってすみませんでした。 > 時間を見つけて見てみますね(って、私が直せるのだろうか・・・苦笑) > > -- > .:% Masao Mutoh<mu...@hi...> > > > ------------------------------------------------------- > This SF.net email is sponsored by: Splunk Inc. Do you grep through log files > for problems? Stop! Download the new AJAX search engine that makes > searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642 > _______________________________________________ > ruby-gnome2-devel-ja mailing list > rub...@li... > https://lists.sourceforge.net/lists/listinfo/ruby-gnome2-devel-ja > -- -- .:% Masao Mutoh<mu...@hi...> |