File 2588-Trivial-refactoring-of-try_steal_task.patch of Package erlang

From 427d7e6a26940ef42b885f8d2ac21eef2510914b Mon Sep 17 00:00:00 2001
From: Robin Morisset <rmorisset@meta.com>
Date: Sat, 9 Nov 2024 20:30:49 -0800
Subject: [PATCH 08/15] Trivial refactoring of try_steal_task

---
 erts/emulator/beam/erl_process.c | 21 +++++----------------
 1 file changed, 5 insertions(+), 16 deletions(-)

diff --git a/erts/emulator/beam/erl_process.c b/erts/emulator/beam/erl_process.c
index f1681a1c1b..cd31d1df47 100644
--- a/erts/emulator/beam/erl_process.c
+++ b/erts/emulator/beam/erl_process.c
@@ -4635,18 +4635,15 @@ check_possible_steal_victim(ErtsRunQueue *rq, int vix, Process **result_proc)
 static int
 try_steal_task(ErtsRunQueue *rq, Process **result_proc)
 {
-    int res, rq_locked, vix, active_rqs, blnc_rqs;
+    int res, vix, active_rqs, blnc_rqs;
     Uint32 flags;
 
     flags = empty_runq_get_old_flags(rq);
     if (flags & ERTS_RUNQ_FLG_SUSPENDED)
 	return 0; /* go suspend instead... */
 
-    res = 0;
-
-    ERTS_LC_CHK_RUNQ_LOCK(rq, rq_locked);
+    ERTS_LC_ASSERT(erts_lc_runq_is_locked(rq));
     erts_runq_unlock(rq);
-    rq_locked = 0;
 
     get_no_runqs(&active_rqs, &blnc_rqs);
 
@@ -4662,8 +4659,7 @@ try_steal_task(ErtsRunQueue *rq, Process **result_proc)
 	    while (erts_atomic32_read_acqb(&no_empty_run_queues) < blnc_rqs) {
 		res = check_possible_steal_victim(rq, vix, result_proc);
 		if (res) {
-                    rq_locked = 1;
-		    goto done;
+                    return res;
                 }
 		vix++;
 		if (vix >= blnc_rqs)
@@ -4685,20 +4681,13 @@ try_steal_task(ErtsRunQueue *rq, Process **result_proc)
 
 	    res = check_possible_steal_victim(rq, vix, result_proc);
 	    if (res) {
-                rq_locked = 1;
-		goto done;
+                return res;
             }
 	}
 
     }
 
- done:
-
-    if (!rq_locked)
-	erts_runq_lock(rq);
-
-    if (res)
-        return res;
+    erts_runq_lock(rq);
     return runq_got_work_to_execute(rq);
 }
 
-- 
2.43.0

openSUSE Build Service is sponsored by