[#20083] non-block IO with TCPSocket — dn <daisuke@...>

初投稿の中村と申します。よろしくお願いします。

19 messages 2000/01/06
[#20084] Re: non-block IO with TCPSocket — Tomoyuki Kosimizu <greentea@...2.so-net.ne.jp> 2000/01/06

越水です。

[#20091] Re: non-block IO with TCPSocket — とみたまさひろ <tommy@...> 2000/01/06

とみたです。

[#20133] おききしたーいでーす — akimaru <akimaru@...>

17 messages 2000/01/09
[#20138] Re: おききしたーいでーす — akimaru <akimaru@...> 2000/01/09

[#20237] Ruby/Tk multi interpreter — nagai@...

永井@知能.九工大です.

21 messages 2000/01/17
[#20242] Re: Ruby/Tk multi interpreter — nagai@... 2000/01/17

永井@知能.九工大です.

[#20248] Re: Ruby/Tk multi interpreter — Hideto ISHIBASHI <s34204@...> 2000/01/17

石橋秀仁です。

[#20254] Re: Ruby/Tk multi interpreter — nagai@... 2000/01/18

永井@知能.九工大です.

[#20271] Re: Ruby/Tk multi interpreter — Hideto ISHIBASHI <s34204@...> 2000/01/18

石橋秀仁です。

[#20249] FTP.open err for Windows95 — "Y Kataoka" <kataoka@...>

初めまして、片岡@KLUGと申します。

18 messages 2000/01/17
[#20252] Re: FTP.open err for Windows95 — "NAKAMURA, Hiroshi" <nakahiro@...> 2000/01/18

なひです.

[#20342] How to build ruby(current) with cygwin — KORIYAMA Naohiro <kory@...2.so-net.ne.jp>

はじめまして、こおりやまです。

19 messages 2000/01/23
[#20362] Re: How to build ruby(current) with cygwin — WATANABE Hirofumi <Hirofumi.Watanabe@...> 2000/01/24

わたなべです.

[#20422] Re: How to build ruby(current) with cygwin — Masaki Suketa<CQN02273@...> 2000/01/29

Win32OLE の作者の助田です.

[#20394] ruby-1.4.3 port to HPUX 11.00 — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

15 messages 2000/01/26

[ruby-list:20275] Re: Ruby/Tk multi interpreter

From: Hideto ISHIBASHI <s34204@...>
Date: 2000-01-19 04:14:57 UTC
List: ruby-list #20275
石橋秀仁です。

At Wed, 19 Jan 2000 10:52:06 +0900
  nagai@dumbo.ai.kyutech.ac.jp wrote:

> 永井@知能.九工大です.
> 
> s34204> > むむむ.
> s34204> > 作成された widget 自体は消滅させずに Tk.mainloop だけを止めたい
> s34204> > という理解でよろしいでしょうか?
> s34204> > # そうでないなら,インタープリタを一度完全に殺してしまって,
> s34204> > # 再表示時にインタープリタの再生成を行うというので良さそうです.
> s34204> リクエストは,「下」の完全に消去するほうです。
> s34204> 「上」のほうが高級な感じがしますが,
> s34204> ぼくはそこまで高級な機能が欲しくなったことは無いです。
> s34204> それに,現状でも実現できますから,さしあたっては必要無いかと。
> 
> Tk.mainloop だけの停止って,本当にうまく実現できてます?
> 例えば,一つのスレッドで Tk.mainloop をやってて,
> そのスレッドを殺せば確かに widget の反応も止まります.
> ですが,その間の処理待ちイベントが溜ってしまって,
> 次に Tk.mainloop を動かした際に一気に処理されてしまったりしませんか?
> これは期待に反するものだと思うのですが...

おっしゃる通りです。ちょっと勘違いしていました。
「現状で実現できる機能」は,
「作成されたwidgetを消滅させずにTk.mainloopだけを止める」ではなく,
「復元情報を保持してTk.mainloopをまるごと消滅させる」です。
要するに,「お待ち下さい」を表示する代わりに,
root windowからまるごと消してしまうってことですね。

そして,「Tk.mainloopだけの停止」をやってみると,
確かにイベントの洪水によるダム決壊状態となったのを覚えています。

---
ところで,Ruby/Tkの制御構造はイベント駆動なのに,
なぜ,あたかもポーリングをしているように,
Tk.mainloopのスレッドがリソースの大食いをするのか,
疑問に思っていました。

OSのスレッドライブラリを使えば,ダイアログを出しながら裏で計算する,
というマルチスレッド処理が,スマートに実現できますよね。
つまり,イベント待ちはスレッドの実行権の放棄になると思います。
# Windows95ならDispatchMessageとかなんとか。

でも,Ruby/Tkの使用感は,まるでポーリングをしているように重いのです。
これは,Rubyのスレッドで実現する以上は仕方の無いことなのでしょうか?
あるいは,設計上の考慮で改善できるのでしょうか?

Hideto ISHIBASHI
http://vip.cis.kurume-nct.ac.jp/~s34204/

In This Thread