История изменений
Исправление bugfixer, (текущая версия) :
flush() before close().
А на случай, если оба вернут EIO, у меня проездной!
Если за’flush()’ить не удалось, а записать ну очень нужно / хочется (например это что-то критичное типа transaction logs) - close() дергать ни в коем случае нельзя. Одна из осмысленных вещей что можно сделать - retry every X seconds, параллельно сыпля severe warning’ами которые видят operations «мне плохо - спасите / помогите!» в надежде что «кавалерия» таки прибежит.
Т.к. ничего осмысленного сделать один хрен нельзя
См. выше.
вообще не проверяю код возврата
Имхо - не самая лучшая стратегия: как минимум такое нужно логировать даже если данные не критичны.
и исключения из деструкторов по возможности тоже стараюсь не бросать.
Этого делать вообще никогда нельзя ))
Исходная версия bugfixer, :
flush() before close().
А на случай, если оба вернут EIO, у меня проездной!
Если за’flush()’ить не удалось, а записать ну очень нужно / хочется (например это что-то критичное типа transaction logs) - close() дергать ни в коем случае нельзя. Одна из осмысленных вещей что можно сделать - retry every X seconds, параллельно сыпля severe warning’ами которые видят operations «мне плохо - спасите / помогите!» в надежде что «кавалерия» таки прибежит.
Т.к. ничего осмысленного сделать один хрен нельзя
См. выше.
вообще не проверяю код возврата
Имхо - не самая лучшая стратегия: как минимум такое нужно логировать даже если данные не критичны.
и исключения из деструкторов по возможности тоже стараюсь не бросать.
Этого вообще никогда нельзя делать ))