コード例 #1
0
        private void Unplug()
        {
            Debug.Assert(m_plugged);
            m_plugged = false;

            //  Cancel all fd subscriptions.
            if (!m_inputError)
            {
                m_ioObject.RmFd(m_handle);
            }

            //  Disconnect from I/O threads poller object.
            m_ioObject.Unplug();

            //  Disconnect from session object.
            if (m_encoder != null)
            {
                m_encoder.SetMsgSource(null);
            }
            if (m_decoder != null)
            {
                m_decoder.SetMsgSink(null);
            }
            m_session = null;
        }
コード例 #2
0
        private void Error()
        {
            Debug.Assert(m_session != null);
            //m_socket.EventDisconnected(m_endpoint, m_handle);
            m_session.Detach();

            //  Cancel all fd subscriptions.
            m_ioObject.RmFd(m_handle);

            //  Disconnect from I/O threads poller object.
            m_ioObject.Unplug();

            //  Disconnect from session object.
            if (m_decoder != null)
            {
                m_decoder.SetMsgSink(null);
            }

            m_session = null;

            Destroy();
        }