[Mew-dist 04324] Re: [imget] lost mail
Atsushi Onoe
onoe at example.com
1998年 3月 30日 (月) 12:14:08 JST
なかなか深いですね。。。
perl では途中で $| を変更するというのは、想定されていないのかな。
そうすると $| = 1 してから書き始めるくらいしか思い付きません。
あまりに遅いようならプログラム中で適当に local buffering するとか。
尾上
> 現象: imgetでディスクフルの時に1000バイト程度のメールを受けるとロストす
> る。
>
> 1 MsgStoreの
> if (&unixp() && !&no_sync()) {
> select (ART); $| = 1; select (STDOUT);
> ^^^^^^^ここでfflushを行っている。
> 2 FreeBSD 2.5で使っているfflush
> static char sccsid[] = "@(#)fflush.c 8.1 (Berkeley) 6/4/93";
> はエラーが起きたときに状態を保存しない、そのため後に続くfcloseは正
> 常終了する。
> 3 perlの $| でfflushを行うとステータスを取れない。
> 4 良くわからないけどfsyncしなければいけない理由もありそうだ。
> このためにはfflushしないと意味が無い。
Mew-dist メーリングリストの案内