System.Net.Sockets.SocketAsyncEventArgs.CheckPinMultipleBuffers C# (CSharp) Method

CheckPinMultipleBuffers() private method

private CheckPinMultipleBuffers ( ) : void
return void
        private void CheckPinMultipleBuffers()
        {
            if (_bufferList == null)
            {
                // No buffer list is set so unpin any existing multiple buffer pinning.
                if (_pinState == PinState.MultipleBuffer)
                {
                    FreeOverlapped(false);
                }
            }
            else
            {
                if (!(_pinState == PinState.MultipleBuffer) || _bufferListChanged)
                {
                    // Need to setup a new Overlapped.
                    _bufferListChanged = false;
                    FreeOverlapped(false);
                    try
                    {
                        SetupOverlappedMultiple();
                    }
                    catch (Exception)
                    {
                        FreeOverlapped(false);
                        throw;
                    }
                }
            }
        }
SocketAsyncEventArgs