summaryrefslogtreecommitdiff
path: root/erts/emulator/beam/erl_proc_sig_queue.c
diff options
context:
space:
mode:
Diffstat (limited to 'erts/emulator/beam/erl_proc_sig_queue.c')
-rw-r--r--erts/emulator/beam/erl_proc_sig_queue.c6
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);
}