次の関数を使用して、ファイルにデータを書き込みます。
def WriteTo1File(self, output_file, text):
output_file.write(text)
output_file.flush()
os.fsync(output_file.fileno())
このfsync()
呼び出しは IOError を処理するために必須です。ネットワーク ドライブに到達できないときに使用しない場合、関数はwrite()
ローカル バッファーで動作し、例外は発生しません。
問題は、数回の書き込み操作の後、関数fsync()
がハングすることです。それは何に関連していますか?ローカル マシンは Python 2.7 を実行する Linux です。ドライブは mount.cifs でマウントされます。リモート ディスクは、常に到達可能なローカル サーバー上にあります。リモートディスクをアンマウントすると、fsync()
数十秒後に戻ります。