/// <summary> /// Close this mailbox /// </summary> /// <remarks> /// After this operation, the mailbox will no longer be able to /// receive messages. Any delivered but as yet unretrieved messages /// can still be retrieved however. /// /// If there are links from this mailbox to other <see cref="ErlPid"/> /// pids they will be broken when this method is /// called and exit signals will be sent. /// </remarks> internal void Close() { // Notify all registered monitors that this pid is closing foreach (var monitor in m_Monitors) { var msg = ErlMsg.MonitorPexit(m_Self, monitor.Value, monitor.Key, ErlAtom.Normal); m_Node.Deliver(monitor.Value.Node, msg); } m_Node.CloseMbox(this); m_RegName = ErlAtom.Null; }
/// <summary> /// Close this mailbox /// </summary> /// <remarks> /// After this operation, the mailbox will no longer be able to /// receive messages. Any delivered but as yet unretrieved messages /// can still be retrieved however. /// /// If there are links from this mailbox to other <see cref="ErlPid"/> /// pids they will be broken when this method is /// called and exit signals will be sent. /// </remarks> internal void Close() { m_Node.CloseMbox(this); }