@@ -6052,8 +6052,18 @@ handle_altact_msg(Process *c_p, ErtsSigRecvTracing *tracing,
60526052 mon -> flags &= ~ERTS_ML_STATE_ALIAS_MASK ;
60536053
60546054 erts_monitor_tree_delete (& ERTS_P_MONITORS (c_p ), mon );
6055- if (flags & ERTS_ML_FLG_PRIO_ALIAS )
6055+ if (flags & ERTS_ML_FLG_PRIO_ALIAS ) {
6056+ mon -> flags &= ~ERTS_ML_FLG_PRIO_ALIAS ;
6057+ /*
6058+ * See comment at end of function why we don't delete alias
6059+ * reference now...
6060+ */
60566061 prio_alias_deactivated = !0 ;
6062+ }
6063+ if (flags & ERTS_ML_FLG_PRIO_ML ) {
6064+ mon -> flags &= ~ERTS_ML_FLG_PRIO_ML ;
6065+ erts_proc_sig_prio_item_deleted (c_p , ERTS_PRIO_ITEM_TYPE_MONITOR );
6066+ }
60576067
60586068 switch (ERTS_ML_GET_TYPE (mon )) {
60596069 case ERTS_MON_TYPE_DIST_PORT :
@@ -6675,6 +6685,11 @@ erts_proc_sig_handle_incoming(Process *c_p, erts_aint32_t *statep,
66756685 ErtsELink * elnk ;
66766686 ErtsLink * dlnk = erts_link_to_other (llnk , & elnk );
66776687 if (!elnk -> unlinking ) {
6688+ if (llnk -> flags & ERTS_ML_FLG_PRIO_ML ) {
6689+ llnk -> flags &= ~ERTS_ML_FLG_PRIO_ML ;
6690+ erts_proc_sig_prio_item_deleted (
6691+ c_p , ERTS_PRIO_ITEM_TYPE_LINK );
6692+ }
66786693 erts_link_tree_delete (& ERTS_P_LINKS (c_p ), llnk );
66796694 if (erts_link_dist_delete (dlnk ))
66806695 erts_link_release_both (& elnk -> ld );
@@ -6693,6 +6708,11 @@ erts_proc_sig_handle_incoming(Process *c_p, erts_aint32_t *statep,
66936708 llnk = erts_link_tree_lookup (ERTS_P_LINKS (c_p ),
66946709 sulnk -> from );
66956710 if (llnk && !((ErtsILink * ) llnk )-> unlinking ) {
6711+ if (llnk -> flags & ERTS_ML_FLG_PRIO_ML ) {
6712+ llnk -> flags &= ~ERTS_ML_FLG_PRIO_ML ;
6713+ erts_proc_sig_prio_item_deleted (
6714+ c_p , ERTS_PRIO_ITEM_TYPE_LINK );
6715+ }
66966716 if (tracing .procs )
66976717 getting_unlinked (c_p , sulnk -> from );
66986718 erts_link_tree_delete (& ERTS_P_LINKS (c_p ), llnk );
0 commit comments