コード例 #1
0
ファイル: StreamPipeWriter.cs プロジェクト: mikem8361/runtime
 private void ReturnSegmentUnsynchronized(BufferSegment segment)
 {
     segment.Reset();
     if (_bufferSegmentPool.Count < MaxSegmentPoolSize)
     {
         _bufferSegmentPool.Push(segment);
     }
 }
コード例 #2
0
ファイル: StreamPipeReader.cs プロジェクト: mikem8361/runtime
        private bool CompleteAndGetNeedsDispose()
        {
            if (_isReaderCompleted)
            {
                return(false);
            }

            _isReaderCompleted = true;

            BufferSegment?segment = _readHead;

            while (segment != null)
            {
                BufferSegment returnSegment = segment;
                segment = segment.NextSegment;

                returnSegment.Reset();
            }

            return(!LeaveOpen);
        }