File 0382-Fix-yield-due-to-receive-tracing.patch of Package erlang

From 134a122b0668dc3a1cdf3656d7592b2f83cc7bdb Mon Sep 17 00:00:00 2001
From: Rickard Green <rickard@erlang.org>
Date: Fri, 12 Feb 2021 01:26:04 +0100
Subject: [PATCH 2/2] Fix yield due to receive tracing

---
 erts/emulator/beam/erl_proc_sig_queue.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/erts/emulator/beam/erl_proc_sig_queue.c b/erts/emulator/beam/erl_proc_sig_queue.c
index 7fa0135e93..0a3afd8218 100644
--- a/erts/emulator/beam/erl_proc_sig_queue.c
+++ b/erts/emulator/beam/erl_proc_sig_queue.c
@@ -4730,9 +4730,13 @@ erts_proc_sig_handle_incoming(Process *c_p, erts_aint32_t *statep,
     do {
 
         if (msg_tracing) {
+	    int tres;
             ERTS_PROC_SIG_HDBG_PRIV_CHKQ(c_p, &tracing, next_nm_sig);
-            if (handle_msg_tracing(c_p, &tracing, next_nm_sig) != 0) {
+	    tres = handle_msg_tracing(c_p, &tracing, next_nm_sig);
+            if (tres != 0) {
                 ERTS_PROC_SIG_HDBG_PRIV_CHKQ(c_p, &tracing, next_nm_sig);
+		if (tres < 0)
+		    yield = !0;
                 break; /* tracing limit or end... */
             }
             ERTS_PROC_SIG_HDBG_PRIV_CHKQ(c_p, &tracing, next_nm_sig);
-- 
2.26.2

openSUSE Build Service is sponsored by