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