private void CleanUpConnection() { IRelayedOnewayListener relayedOnewayListener = null; lock (base.ThisLock) { relayedOnewayListener = this.connection; this.connection = null; } if (relayedOnewayListener != null) { relayedOnewayListener.Unregister(this); relayedOnewayListener.Abort(); } }
protected override void OnClose(TimeSpan timeout) { TimeoutHelper timeoutHelper = new TimeoutHelper(timeout); IRelayedOnewayListener relayedOnewayListener = null; lock (base.ThisLock) { relayedOnewayListener = this.connection; this.connection = null; } if (relayedOnewayListener != null) { relayedOnewayListener.Unregister(this); relayedOnewayListener.Close(timeoutHelper.RemainingTime()); } base.OnClose(timeoutHelper.RemainingTime()); }
protected override IAsyncResult OnBeginClose(TimeSpan timeout, AsyncCallback callback, object state) { IRelayedOnewayListener relayedOnewayListener = null; lock (base.ThisLock) { relayedOnewayListener = this.connection; this.connection = null; } if (relayedOnewayListener == null) { return(new DelegatingAsyncResult(new Func <TimeSpan, AsyncCallback, object, IAsyncResult>(this.OnBeginClose), new Action <IAsyncResult>(this.OnEndClose), timeout, callback, state)); } relayedOnewayListener.Unregister(this); IRelayedOnewayListener relayedOnewayListener1 = relayedOnewayListener; IRelayedOnewayListener relayedOnewayListener2 = relayedOnewayListener; return(new Microsoft.ServiceBus.Common.ChainedAsyncResult(timeout, callback, state, new Microsoft.ServiceBus.Common.ChainedBeginHandler(relayedOnewayListener1.BeginClose), new Microsoft.ServiceBus.Common.ChainedEndHandler(relayedOnewayListener2.EndClose), new Microsoft.ServiceBus.Common.ChainedBeginHandler(this.OnBeginClose), new Microsoft.ServiceBus.Common.ChainedEndHandler(this.OnEndClose))); }