internal override void removeProtocolTransport(StateTransportImpl transport) { lock (locker) { if (state != State.EXCHANGE) { return; } if (this.transport != null) { transport.close(); this.transport = null; } Exception t = dispatcher.run(() => listener.onTransportRemoved(transport)); if (t == null) { if (!scheduleReconnect()) { _close(); } } else { if (Trace.isErrorEnabled()) { Trace.error(this + " removeProtocolTransport = " + transport, t); } _close(); } Monitor.Pulse(locker); } }