[Mew-dist 2078] Re: im* が止まる (win95)
Keisuke Mori
ksk at example.com
1997年 9月 17日 (水) 14:43:42 JST
もりです。
From: Kazu Yamamoto (山本和彦) <Kazu at example.com>
Subject: Re: [Mew-dist 2070] Re: im* が止まる (win95)
Date: Wed, 17 Sep 1997 10:44:34 +0900
> 一般にユーザインターフェイスでは、全ての処理が終るまでユーザを待たすの
> ではなく、できた部分からユーザに見せるのがよいとされています。どの部分
> に対してやりすぎだと感じているのか分からないので、適切に回答できません
> が、枠組としてはやりすぎではないと思います。
私も、少なくとも端末出力をするプログラムで行単位バッファリングに
することは、やりすぎではないと思います。
#そのための実現方法として Perl で $| を切り替えるのが良いのかは
#私には判断つきませんが(私は最初なるほどなあ、って思っちゃいまし
#たけど。他に方法なさそうですものね)。
> > IM/Stdio.pmのflushを
> > sub flush {
> > # local($old) = select(shift);
> > # $| = 1;
> > # print '';
> > # $| = 0;
> > # select($old);
> > }
> また、上記のようにして Win32 の Mule で、imls の終了を待たずに読み始め
> られるのなら、Win32 では flush() を呼ばないようにします。
>
> もし、$| の変化を少なくすればうまくいくのであれば、そう変更します。
私が試した限りでは、上記の対処を行っても問題の症状が起こりました
が、対処する前よりは発生する確率が格段に小さくなっているので、と
りあえずの対処としては十分有効ではないかと思います。
具体的には、200通程度のフォルダに対して imls を行ってみたんです
が、対処前は 100%発生したのに対し、対処後は 5回に1回以下程度でし
た(カーソルを派手に動かしたりしたとき。通常の使い方であればもっ
と低いと予想されます)。
> ただ、やはりこれは Win95 そのものか、Mule for Win32 の問題であって、そ
> ちらを直すのが根本的な解決方法だと思います。(Win95 だとしたら、手が出
> せませんが。)
私の理解では、これの根本的な原因は Windows95 そのものにあるので
はないか、そしてそれに直接関わってるのは Perl for Win32 である、
という推測が有力なのだと思っています。ですから、もしこれが正しい
場合、どこで対処、回避する「べき」か、という「筋」論をいうのであ
れば、
Windows95 > Perl for Win32 > IM > Mule for Win32
の順位になるのでは、と思うのです。
# 実際 Windows95 のアプリケーションを開発していると、(デバッグ&
#安定化) == (Windows95 問題回避) のような気がしてくる…^^;
--
Keisuke Mori / NTT Software Corp. California Branch
E-Mail: ksk at example.com
Mew-dist メーリングリストの案内