update to 18.0.3 and fix a deadlock (fix now yet in 18.0.x) OBS-URL: https://build.opensuse.org/request/show/327239 OBS-URL: https://build.opensuse.org/package/show/devel:languages:erlang:Factory/erlang?expand=0&rev=33
26 lines
790 B
Diff
26 lines
790 B
Diff
From 02380778fd2a9d6af85865a89ef0747351cc0f88 Mon Sep 17 00:00:00 2001
|
|
From: Lukas Larsson <lukas.larsson@erlang-solutions.com>
|
|
Date: Thu, 13 Aug 2015 14:52:20 +0200
|
|
Subject: [PATCH] erts: Make sure to unlock status lock when setting process
|
|
prio
|
|
|
|
---
|
|
erts/emulator/beam/erl_process.c | 4 ++++
|
|
1 file changed, 4 insertions(+)
|
|
|
|
diff --git a/erts/emulator/beam/erl_process.c b/erts/emulator/beam/erl_process.c
|
|
index 7b3d12c..98f01bb 100644
|
|
--- a/erts/emulator/beam/erl_process.c
|
|
+++ b/erts/emulator/beam/erl_process.c
|
|
@@ -9177,6 +9177,10 @@ erts_set_process_priority(Process *p, Eterm value)
|
|
|
|
a = erts_smp_atomic32_cmpxchg_mb(&p->state, n, e);
|
|
} while (a != e);
|
|
+
|
|
+ if (slocked)
|
|
+ erts_smp_proc_unlock(p, ERTS_PROC_LOCK_STATUS);
|
|
+
|
|
}
|
|
|
|
switch (oprio) {
|