private void ReturnSegmentUnsynchronized(BufferSegment segment) { segment.Reset(); if (_bufferSegmentPool.Count < MaxSegmentPoolSize) { _bufferSegmentPool.Push(segment); } }
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); }