System.Net.WebSockets.WebSocketBase.Abort C# (CSharp) Method

Abort() public method

public Abort ( ) : void
return void
        public override void Abort()
        {
            if (NetEventSource.IsEnabled)
            {
                NetEventSource.Enter(this);
            }

            bool thisLockTaken = false;
            bool sessionHandleLockTaken = false;
            try
            {
                if (IsStateTerminal(State))
                {
                    return;
                }

                TakeLocks(ref thisLockTaken, ref sessionHandleLockTaken);
                if (IsStateTerminal(State))
                {
                    return;
                }

                _state = WebSocketState.Aborted;

                // Abort any outstanding IO operations.
                if (SessionHandle != null && !SessionHandle.IsClosed && !SessionHandle.IsInvalid)
                {
                    WebSocketProtocolComponent.WebSocketAbortHandle(SessionHandle);
                }

                _receiveOutstandingOperationHelper.CancelIO();
                _sendOutstandingOperationHelper.CancelIO();
                _closeOutputOutstandingOperationHelper.CancelIO();
                _closeOutstandingOperationHelper.CancelIO();
                if (_innerStreamAsWebSocketStream != null)
                {
                    _innerStreamAsWebSocketStream.Abort();
                }
                CleanUp();
            }
            finally
            {
                ReleaseLocks(ref thisLockTaken, ref sessionHandleLockTaken);
                if (NetEventSource.IsEnabled)
                {
                    NetEventSource.Exit(this);
                }
            }
        }