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

openSUSE Build Service is sponsored by