summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Radestock <matthias@rabbitmq.com>2011-05-15 17:17:05 +0100
committerMatthias Radestock <matthias@rabbitmq.com>2011-05-15 17:17:05 +0100
commit2823712d2ae6d65092bbc84a689448312af2500a (patch)
tree0ac182d685b07a2df3b5f272dca67105919fb18f
parent1970d97dc800bc6a16d68460c92cfb564baa5e90 (diff)
downloadrabbitmq-server-git-2823712d2ae6d65092bbc84a689448312af2500a.tar.gz
shrink
-rw-r--r--src/rabbit_misc.erl20
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