aboutsummaryrefslogtreecommitdiffstats
path: root/lib/mnesia/src/mnesia_monitor.erl
diff options
context:
space:
mode:
authorDan Gudmundsson <[email protected]>2014-02-12 14:50:49 +0100
committerDan Gudmundsson <[email protected]>2014-02-20 12:38:51 +0100
commit70373f8cb0a3fe404c1e51e0ade0c98b83aa0014 (patch)
tree32fc44566f344b8d1b3196ee74902d6afb584a5c /lib/mnesia/src/mnesia_monitor.erl
parentfdcdaca338849d7f63d4300e489318f6ee275d82 (diff)
downloadotp-70373f8cb0a3fe404c1e51e0ade0c98b83aa0014.tar.gz
otp-70373f8cb0a3fe404c1e51e0ade0c98b83aa0014.tar.bz2
otp-70373f8cb0a3fe404c1e51e0ade0c98b83aa0014.zip
mnesia: Add explicit sync_log command
For performance reasons the file data is not synced to disk in mnesia, data loss can happen between each dump. mnesia:dump_log() can be used explicitly to ensure data is written to disk. But that can take a long time, so mnesia:sync_log() which just sync the log have been added.
Diffstat (limited to 'lib/mnesia/src/mnesia_monitor.erl')
-rw-r--r--lib/mnesia/src/mnesia_monitor.erl7
1 files changed, 7 insertions, 0 deletions
diff --git a/lib/mnesia/src/mnesia_monitor.erl b/lib/mnesia/src/mnesia_monitor.erl
index c7b905a1bf..7b56613ad7 100644
--- a/lib/mnesia/src/mnesia_monitor.erl
+++ b/lib/mnesia/src/mnesia_monitor.erl
@@ -44,6 +44,7 @@
set_env/2,
start/0,
start_proc/4,
+ sync_log/1,
terminate_proc/3,
unsafe_close_dets/1,
unsafe_close_log/1,
@@ -118,6 +119,9 @@ open_log(Args) ->
reopen_log(Name, Fname, Head) ->
unsafe_call({reopen_log, Name, Fname, Head}).
+sync_log(Name) ->
+ unsafe_call({sync_log, Name}).
+
close_log(Name) ->
unsafe_call({close_log, Name}).
@@ -382,6 +386,9 @@ handle_call({reopen_log, Name, Fname, Head}, _From, State) ->
{noreply, State}
end;
+handle_call({sync_log, Name}, _From, State) ->
+ {reply, disk_log:sync(Name), State};
+
handle_call({close_log, Name}, _From, State) ->
case disk_log:close(Name) of
ok ->