internal void CancelSend(Node node) { lock (m_scheduledSends) { if (m_scheduledSends.Contains(node)) { m_scheduledSends.Remove(node); Portable.WaitOne(m_scheduleSem, Timeout.Infinite); } } }
public void Stop() { Logging.Trace(TraceEventType.Information, "Stopping bus dispatcher"); m_stopEvent.Set(); m_dispatchThread.Join(); m_port.Close(); m_scheduledSends.Clear(); m_nodes.Clear(); while (Portable.WaitOne(m_scheduleSem, 0)) { ; } }