/// <summary> /// Remove any half processed messages. Flush unflushed messages. /// Call this function when engine disconnect to get rid of leftovers. /// </summary> private void CleanPipes() { if (m_pipe != null) { // Get rid of half-processed messages in the out pipe. Flush any // unflushed messages upstream. m_pipe.Rollback(); m_pipe.Flush(); // Remove any half-read message from the in pipe. while (m_incompleteIn) { var msg = new Msg(); msg.InitEmpty(); if (!PullMsg(ref msg)) { Debug.Assert(!m_incompleteIn); break; } msg.Close(); } } }