erlang/erts_fix_unlock_status_lock.patch

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) {