internal bool Close() { // ?! //SpinLock.Enter(); bool result = Interlocked.Increment(ref closeCount) == 1; //SpinLock.Exit(); if (result) { ReceiveQueue.Dispose(); if (sspiContext != null) { sspiContext.Dispose(); } if (UserConnection != null) { UserConnection.Dispose(); } } return(result); }
public void Close() { _cts.Cancel(); CloseLock.EnterWriteLock(); IsClosed = true; CloseLock.ExitWriteLock(); ReceiveQueue.Dispose(); }