public override void Destroy() { Debug.Assert(m_pipe == null); // If there's still a pending linger timer, remove it. if (m_hasLingerTimer) { m_ioObject.CancelTimer(LingerTimerId); m_hasLingerTimer = false; } // Close the engine. if (m_engine != null) { m_engine.Terminate(); } }
protected override void ProcessTerm(int linger) { if (m_timerStarted) { m_ioObject.CancelTimer(ReconnectTimerId); m_timerStarted = false; } if (m_handleValid) { m_ioObject.RmFd(m_handle); m_handleValid = false; } if (m_s != null) { Close(); } base.ProcessTerm(linger); }