[Mew-dist 11661] Re: Mew 1.95b8

Kazu Yamamoto ( 山本和彦 ) kazu at example.com
1999年 12月 7日 (火) 14:24:24 JST


From: Hideyuki SHIRAI (白井秀行) <shirai at example.com>
Subject: [Mew-dist 11658] Re: Mew 1.95b8

> <HELO>
> 50 xxxx.yyyy.mgcs.mei.co.jp Hello sugar [foo.bar.202.41], pleased to meet you
> 
> と出ています。(一部伏せ字)

うーん。サーバは "250" (成功)を返してきていますが、先頭一文字を落とし
ていますね。どうしてだろう? (coding-system か?)

> ちなみに、mew-timer を単純に nil を返す関数に置き換えたら、上記
> の UNIX版 19.28 と同じ挙動になりました。
> しかし、open-network-stream の timeout の判定ができないですね。

open-network-stream は
	(1) リゾルバを引いてホスト名を IP アドレスに直す
	(2) ソケットを open() する
	(3) そのソケットに connect() する
という作業をします。

ブロックされるのは (1) と (3) です。それぞれ、自分自身でタイムアウトし
ます。それを待てないからタイマーを使っています。

よって、タイマーがなくても、関数独自のタイムアウトは有効です。

でも世の中はそんなに単純ではありません。

たとえば、/etc/resolv.conf がなければ (1) はすぐエラーを返します。ネッ
トワークに完全につながっていない場合も、すぐにエラーを返します。(と、
思う。)

問題は、ラップトップなどでネットワークカードが刺さっているけれど、線が
外れているときなど。たとえば、FreeBSD + PAO でこの状態になると、タイマー
にもCPU 時間を与えなくなり、結局関数のタイムアウトを待つしかないようで
す。

その際、Emacs では C-g できるけど、XEmacs では C-g が効きません。ひー。

ちなみに、C-g すると、ちゃんと Mew はキューイングします。

--かず



Mew-dist メーリングリストの案内