aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam/erl_proc_sig_queue.c
diff options
context:
space:
mode:
authorLukas Larsson <[email protected]>2019-03-25 11:43:43 +0100
committerLukas Larsson <[email protected]>2019-03-25 16:34:11 +0100
commitef8db1270fc26dfad1ff467ee0acc87439d2c756 (patch)
treee5730b3763ae5f6a1acd8430b028833b5edca352 /erts/emulator/beam/erl_proc_sig_queue.c
parentefff0397b63e5a0ef8676178af89991b97e31dbb (diff)
downloadotp-ef8db1270fc26dfad1ff467ee0acc87439d2c756.tar.gz
otp-ef8db1270fc26dfad1ff467ee0acc87439d2c756.tar.bz2
otp-ef8db1270fc26dfad1ff467ee0acc87439d2c756.zip
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.
Diffstat (limited to 'erts/emulator/beam/erl_proc_sig_queue.c')
-rw-r--r--erts/emulator/beam/erl_proc_sig_queue.c3
1 files changed, 2 insertions, 1 deletions
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;