[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 メーリングリストの案内