diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/rabbit_misc.erl | 20 |
1 files changed, 6 insertions, 14 deletions
diff --git a/src/rabbit_misc.erl b/src/rabbit_misc.erl index 3451724e5f..ff31921e4d 100644 --- a/src/rabbit_misc.erl +++ b/src/rabbit_misc.erl @@ -527,20 +527,12 @@ write_file(Path, Data, Modes) -> case make_binary(Data) of Bin when is_binary(Bin) -> case file:open(Path, Modes1) of - {ok, Hdl} -> - case file:write(Hdl, Bin) of - ok -> - case file:sync(Hdl) of - ok -> - file:close(Hdl); - {error, _} = E -> - file:close(Hdl), - E - end; - {error, _} = E -> - file:close(Hdl), - E - end; + {ok, Hdl} -> try file:write(Hdl, Bin) of + ok -> file:sync(Hdl); + {error, _} = E -> E + after + file:close(Hdl) + end; {error, _} = E -> E end; {error, _} = E -> E |
