System.Net.Connection.CheckNextRequest C# (CSharp) Method

CheckNextRequest() private method

private CheckNextRequest ( ) : HttpWebRequest
return HttpWebRequest
        private HttpWebRequest CheckNextRequest()
        {
        GlobalLog.ThreadContract(ThreadKinds.Unknown, "Connection#" + ValidationHelper.HashString(this) + "::CheckNextRequest");

            if (m_WaitList.Count == 0) {
                // We're free now, if we're not going to close the connection soon.
                m_Free = m_KeepAlive;
                return null;
            }
            if (!CanBePooled) {
                return null;
            }
            HttpWebRequest nextRequest = m_WaitList[0] as HttpWebRequest;

            if (m_IsPipelinePaused)
                m_IsPipelinePaused = m_WriteList.Count > s_MinPipelinedCount;

            if (!nextRequest.Pipelined || nextRequest.RequireBody || !m_CanPipeline || !m_Pipelining || m_IsPipelinePaused) {
                if (m_WriteList.Count != 0) {
                    nextRequest = null;
                }
            }
            if (nextRequest != null) {
                GlobalLog.Print("Connection#" + ValidationHelper.HashString(this) + "::CheckNextRequest() Removing request#" + ValidationHelper.HashString(nextRequest) + " from m_WaitList. New Count:" + (m_WaitList.Count - 1).ToString());
                m_WaitList.RemoveAt(0);
                CheckIdle();
            }
            return nextRequest;
        }