File 3251-Remove-potential-lag-from-mnesia_log-log-slog-functi.patch of Package erlang
From 06d0780402f8309ce2ae30f01ca660efa24f37c4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Sebastian=20Smyczy=C5=84ski?= <s.smyczynski@simplito.com>
Date: Fri, 27 Nov 2020 22:54:27 +0100
Subject: [PATCH] Remove potential lag from mnesia_log:log/slog functions
---
lib/mnesia/src/mnesia_dumper.erl | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/lib/mnesia/src/mnesia_dumper.erl b/lib/mnesia/src/mnesia_dumper.erl
index 0a815b709a..1264efeb68 100644
--- a/lib/mnesia/src/mnesia_dumper.erl
+++ b/lib/mnesia/src/mnesia_dumper.erl
@@ -68,7 +68,10 @@ incr_log_writes() ->
Left = mnesia_lib:incr_counter(trans_log_writes_left, -1),
if
Left =:= 0 ->
- adjust_log_writes(true);
+ %% It doesn't matter which process adjusts counters and sends
+ %% cast to a dumper so to avoid potential lag on global:set_lock
+ %% we delegate it to new process
+ spawn(fun() -> adjust_log_writes(true) end);
true ->
ignore
end.
--
2.26.2