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
commit6407282e346496b39e672392cb7211d2d6f49ab0 (patch)
tree0ac182d685b07a2df3b5f272dca67105919fb18f
parentd7f0084e0b35d4cfeffa35efa74169df51d2182e (diff)
downloadrabbitmq-server-6407282e346496b39e672392cb7211d2d6f49ab0.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 3451724e..ff31921e 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