diff options
author | Lukas Larsson <[email protected]> | 2019-03-25 11:43:43 +0100 |
---|---|---|
committer | Lukas Larsson <[email protected]> | 2019-03-25 16:34:11 +0100 |
commit | ef8db1270fc26dfad1ff467ee0acc87439d2c756 (patch) | |
tree | e5730b3763ae5f6a1acd8430b028833b5edca352 | |
parent | efff0397b63e5a0ef8676178af89991b97e31dbb (diff) | |
download | otp-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.
-rw-r--r-- | erts/emulator/beam/erl_proc_sig_queue.c | 3 |
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; |