File 0218-erts-Pending-signals-can-be-for-free-processes.patch of Package erlang
From ef8db1270fc26dfad1ff467ee0acc87439d2c756 Mon Sep 17 00:00:00 2001
From: Lukas Larsson <lukas@erlang.org>
Date: Mon, 25 Mar 2019 11:43:43 +0100
Subject: [PATCH 21/26] erts: Pending signals can be for free processes
Since we no schedule free processes multiple times, pending
signals can be from free as well as current processes.
---
erts/emulator/beam/erl_proc_sig_queue.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/erts/emulator/beam/erl_proc_sig_queue.c b/erts/emulator/beam/erl_proc_sig_queue.c
index bd59c4afa3..aae976ccb9 100644
--- a/erts/emulator/beam/erl_proc_sig_queue.c
+++ b/erts/emulator/beam/erl_proc_sig_queue.c
@@ -611,7 +611,8 @@ proc_queue_signal(Process *c_p, Eterm pid, ErtsSignal *sig, int op)
#endif
return 1;
}
- ASSERT(esdp->pending_signal.dbg_from == esdp->current_process);
+ ASSERT(esdp->pending_signal.dbg_from == esdp->current_process ||
+ esdp->pending_signal.dbg_from == esdp->free_process);
if (pend_sig != sig) {
/* Switch them and send previously pending signal instead */
Eterm pend_to = esdp->pending_signal.to;
--
2.16.4