Skip to content

Commit 71021b3

Browse files
committed
Add DefaultBufferCapacity constant (FileTreeEnumerable/FileTreeAsyncEnumerable)
1 parent bf1503d commit 71021b3

File tree

2 files changed

+10
-4
lines changed

2 files changed

+10
-4
lines changed

Ramstack.Globbing/Traversal/FileTreeAsyncEnumerable.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -84,10 +84,10 @@ IAsyncEnumerator<TResult> IAsyncEnumerable<TResult>.GetAsyncEnumerator(Cancellat
8484

8585
private async IAsyncEnumerable<TResult> EnumerateAsync(CancellationTokenSource? source, [EnumeratorCancellation] CancellationToken cancellationToken)
8686
{
87-
var chars = ArrayPool<char>.Shared.Rent(512);
88-
8987
try
9088
{
89+
var chars = ArrayPool<char>.Shared.Rent(FileTreeEnumerable<TEntry, TResult>.DefaultBufferCapacity);
90+
9191
var queue = new Queue<(TEntry Directory, string Path)>();
9292
queue.Enqueue((_directory, ""));
9393

@@ -110,10 +110,11 @@ private async IAsyncEnumerable<TResult> EnumerateAsync(CancellationTokenSource?
110110
yield return ResultSelector(entry);
111111
}
112112
}
113+
114+
ArrayPool<char>.Shared.Return(chars);
113115
}
114116
finally
115117
{
116-
ArrayPool<char>.Shared.Return(chars);
117118
source?.Dispose();
118119
}
119120
}

Ramstack.Globbing/Traversal/FileTreeEnumerable.cs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,11 @@ public sealed class FileTreeEnumerable<TEntry, TResult> : IEnumerable<TResult>
1414
{
1515
private readonly TEntry _directory;
1616

17+
/// <summary>
18+
/// The default capacity of the character buffer for paths rented from the shared array pool.
19+
/// </summary>
20+
internal const int DefaultBufferCapacity = 512;
21+
1722
/// <summary>
1823
/// Gets or sets the glob patterns to include in the enumeration.
1924
/// </summary>
@@ -72,7 +77,7 @@ IEnumerator IEnumerable.GetEnumerator() =>
7277

7378
private IEnumerable<TResult> Enumerate()
7479
{
75-
var chars = ArrayPool<char>.Shared.Rent(512);
80+
var chars = ArrayPool<char>.Shared.Rent(DefaultBufferCapacity);
7681

7782
var queue = new Queue<(TEntry Directory, string Path)>();
7883
queue.Enqueue((_directory, ""));

0 commit comments

Comments
 (0)