diff options
Diffstat (limited to 'erts/emulator/beam/erl_proc_sig_queue.c')
-rw-r--r-- | erts/emulator/beam/erl_proc_sig_queue.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/erts/emulator/beam/erl_proc_sig_queue.c b/erts/emulator/beam/erl_proc_sig_queue.c index 8b8b3fdbe3..ac1ce1473f 100644 --- a/erts/emulator/beam/erl_proc_sig_queue.c +++ b/erts/emulator/beam/erl_proc_sig_queue.c @@ -3973,6 +3973,10 @@ handle_process_info(Process *c_p, ErtsSigRecvTracing *tracing, ASSERT(tracing); if (*next_nm_sig != &c_p->sig_qs.cont) { + if (ERTS_SIG_IS_RECV_MARKER(c_p->sig_qs.cont)) { + ErtsRecvMarker *markp = (ErtsRecvMarker *) c_p->sig_qs.cont; + markp->prev_next = c_p->sig_qs.last; + } if (*next_nm_sig == tracing->messages.next) tracing->messages.next = &c_p->sig_qs.cont; *c_p->sig_qs.last = c_p->sig_qs.cont; @@ -6270,7 +6274,7 @@ handle_msg_tracing(Process *c_p, ErtsSigRecvTracing *tracing, */ next_sig = &sig->next; sig = *next_sig; - ASSERT(!ERTS_SIG_IS_RECV_MARKER(sig) + ASSERT(!sig || !ERTS_SIG_IS_RECV_MARKER(sig) || !((ErtsRecvMarker *) sig)->in_msgq); } |