summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRickard Green <rickard@erlang.org>2021-10-05 22:17:51 +0200
committerRickard Green <rickard@erlang.org>2021-10-05 22:17:51 +0200
commit8bf841386807552b76a431527eefd801e723f9c8 (patch)
treef77a6f8914593cc8f42d3a8d223c6ccc85b097a9
parentb87c426ac0033bd01925782f1ea1253cfe17b54a (diff)
downloaderlang-8bf841386807552b76a431527eefd801e723f9c8.tar.gz
Fix faulty recv mark assert
-rw-r--r--erts/emulator/beam/erl_proc_sig_queue.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/erts/emulator/beam/erl_proc_sig_queue.c b/erts/emulator/beam/erl_proc_sig_queue.c
index 49c03739c3..455c7d44be 100644
--- a/erts/emulator/beam/erl_proc_sig_queue.c
+++ b/erts/emulator/beam/erl_proc_sig_queue.c
@@ -3271,11 +3271,10 @@ recv_marker_insert(Process *c_p, ErtsRecvMarker *markp, int setting)
if (!setting && *c_p->sig_qs.save == (ErtsMessage *) &markp->sig) {
/*
- * This should most likely never happen (which is why the assert
- * is here), but if it does, leave the message queue in a valid
- * state...
+ * This can happen when a recv marker recently entered the message
+ * queue via erts_proc_sig_handle_incoming() through the midddle
+ * signal queue...
*/
- ASSERT(0);
markp->pass++;
c_p->sig_qs.save = c_p->sig_qs.last;
}