summaryrefslogtreecommitdiff
path: root/lib/mnesia/src
diff options
context:
space:
mode:
authorDan Gudmundsson <dgud@erlang.org>2015-02-23 13:24:05 +0100
committerDan Gudmundsson <dgud@erlang.org>2015-02-23 13:24:05 +0100
commit1f4075e70f7511b8dedbb75344478fa27cbe6495 (patch)
tree63dd30d14da1e3a9c06643553f06490ee6a8568b /lib/mnesia/src
parent77eeb9aa6295c275ebed135a3ac9339dcb61cef2 (diff)
downloaderlang-1f4075e70f7511b8dedbb75344478fa27cbe6495.tar.gz
mnesia: Flush late messages
Diffstat (limited to 'lib/mnesia/src')
-rw-r--r--lib/mnesia/src/mnesia_locker.erl10
1 files changed, 8 insertions, 2 deletions
diff --git a/lib/mnesia/src/mnesia_locker.erl b/lib/mnesia/src/mnesia_locker.erl
index e27396731f..1efb939e00 100644
--- a/lib/mnesia/src/mnesia_locker.erl
+++ b/lib/mnesia/src/mnesia_locker.erl
@@ -982,8 +982,14 @@ sticky_flush(Ns=[Node | Tail], Store) ->
flush_remaining([], _SkipNode, Res) ->
del_debug(),
exit(Res);
-flush_remaining([SkipNode | Tail ], SkipNode, Res) ->
- flush_remaining(Tail, SkipNode, Res);
+flush_remaining(Ns=[SkipNode | Tail ], SkipNode, Res) ->
+ add_debug(Ns),
+ receive
+ {?MODULE, SkipNode, _} ->
+ flush_remaining(Tail, SkipNode, Res)
+ after 0 ->
+ flush_remaining(Tail, SkipNode, Res)
+ end;
flush_remaining(Ns=[Node | Tail], SkipNode, Res) ->
add_debug(Ns),
receive