LINUX.ORG.RU

История изменений

Исправление 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 «мне плохо - спасите / помогите!» в надежде что «кавалерия» таки прибежит.

Т.к. ничего осмысленного сделать один хрен нельзя

См. выше.

вообще не проверяю код возврата

Имхо - не самая лучшая стратегия: как минимум такое нужно логировать даже если данные не критичны.

и исключения из деструкторов по возможности тоже стараюсь не бросать.

Этого вообще никогда нельзя делать ))