aboutsummaryrefslogtreecommitdiffstats
path: root/lib/stdlib/src/log_mf_h.erl
diff options
context:
space:
mode:
authorMicael Karlberg <[email protected]>2011-04-18 15:14:36 +0200
committerMicael Karlberg <[email protected]>2011-04-18 15:14:36 +0200
commit5af51d9dcb60487e4fcc87353fe0e150c0ba9eed (patch)
tree95eb7adb0edba96eb3fc362a519fb1508cb477ec /lib/stdlib/src/log_mf_h.erl
parentd621b2cdd09adcc38bd6d482ae6c4f87e22cb1e8 (diff)
parent23906a01725f4494b8816c242926d08aeca0ef67 (diff)
downloadotp-5af51d9dcb60487e4fcc87353fe0e150c0ba9eed.tar.gz
otp-5af51d9dcb60487e4fcc87353fe0e150c0ba9eed.tar.bz2
otp-5af51d9dcb60487e4fcc87353fe0e150c0ba9eed.zip
Merge branch 'dev' into bmk/snmp/agent/multi_engine_id_for_traps/OTP-9119
Diffstat (limited to 'lib/stdlib/src/log_mf_h.erl')
-rw-r--r--lib/stdlib/src/log_mf_h.erl14
1 files changed, 10 insertions, 4 deletions
diff --git a/lib/stdlib/src/log_mf_h.erl b/lib/stdlib/src/log_mf_h.erl
index 2729f27e51..5fa5360fa1 100644
--- a/lib/stdlib/src/log_mf_h.erl
+++ b/lib/stdlib/src/log_mf_h.erl
@@ -1,7 +1,7 @@
%%
%% %CopyrightBegin%
%%
-%% Copyright Ericsson AB 1996-2009. All Rights Reserved.
+%% Copyright Ericsson AB 1996-2011. All Rights Reserved.
%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
@@ -185,13 +185,19 @@ read_index_file(Dir) ->
%%-----------------------------------------------------------------
%% Write the index file. This file contains one binary with
%% the last used filename (an integer).
+%% Write a temporary file and rename it in order to make the update
+%% atomic.
%%-----------------------------------------------------------------
write_index_file(Dir, Index) ->
- case file:open(Dir ++ "/index", [raw, write]) of
+ File = Dir ++ "/index",
+ TmpFile = File ++ ".tmp",
+ case file:open(TmpFile, [raw, write]) of
{ok, Fd} ->
- file:write(Fd, [Index]),
- ok = file:close(Fd);
+ ok = file:write(Fd, [Index]),
+ ok = file:close(Fd),
+ ok = file:rename(TmpFile,File),
+ ok;
_ -> exit(open_index_file)
end.