25 instantiations of ObjectPool
Microsoft.CodeAnalysis.CodeStyle (25)
AbstractUseAutoPropertyAnalyzer.cs (5)
36private static readonly ObjectPool<ConcurrentStack<AnalysisResult>> s_analysisResultPool = new(() => new()); 37private static readonly ObjectPool<ConcurrentSet<IFieldSymbol>> s_fieldSetPool = new(() => new()); 38private static readonly ObjectPool<ConcurrentSet<SyntaxNode>> s_nodeSetPool = new(() => new()); 39private static readonly ObjectPool<ConcurrentDictionary<IFieldSymbol, ConcurrentSet<SyntaxNode>>> s_fieldWriteLocationPool = new(() => new()); 55_fieldNamesPool = new(() => new(this.SyntaxFacts.StringComparer));
J\s\src\Dependencies\PooledObjects\ArrayBuilder.cs\ArrayBuilder.cs (1)
426pool = new ObjectPool<ArrayBuilder<T>>(() => new ArrayBuilder<T>(pool!), size);
J\s\src\Dependencies\PooledObjects\PooledDictionary.cs\PooledDictionary.cs (1)
46pool = new ObjectPool<PooledDictionary<K, V>>(() => new PooledDictionary<K, V>(pool!, keyComparer), 128);
J\s\src\Dependencies\PooledObjects\PooledHashSet.cs\PooledHashSet.cs (1)
35pool = new ObjectPool<PooledHashSet<T>>(() => new PooledHashSet<T>(pool!, equalityComparer), 128);
J\s\src\Dependencies\PooledObjects\PooledStringBuilder.cs\PooledStringBuilder.cs (1)
84pool = new ObjectPool<PooledStringBuilder>(() => new PooledStringBuilder(pool!), size);
Logger.LogBlock.cs (1)
17private static readonly ObjectPool<RoslynLogBlock> s_pool = new(() => new RoslynLogBlock(s_pool!), Math.Min(Environment.ProcessorCount * 8, 256));
ObjectReader.cs (1)
322= new(() => new SegmentedList<T>(20));
ObjectWriter.cs (2)
393new(() => new SegmentedDictionary<object, int>(128, ReferenceEqualityComparer.Instance)); 396new(() => new SegmentedDictionary<object, int>(128));
OrderPreservingMultiDictionary.cs (1)
59var pool = new ObjectPool<OrderPreservingMultiDictionary<K, V>>(
PooledDelegates.cs (1)
18public static readonly ObjectPool<T> Instance = new(() => new T(), 20);
SharedPools.cs (7)
44new(() => new HashSet<string>(StringComparer.OrdinalIgnoreCase), 20); 50new(() => new HashSet<string>(StringComparer.Ordinal), 20); 56public static readonly ObjectPool<byte[]> ByteArray = new(() => new byte[ByteBufferSize], ByteBufferCount); 57public static readonly ObjectPool<char[]> CharArray = new(() => new char[ByteBufferSize], CharBufferCount); 68public static readonly ObjectPool<T> Instance = new(() => new T(), 100); 73public static readonly ObjectPool<T> Instance = new(() => new T(), 20); 79new(() => new Dictionary<string, T>(StringComparer.OrdinalIgnoreCase), 20);
StringTable.cs (1)
94var pool = new ObjectPool<StringTable>(pool => new StringTable(pool), Environment.ProcessorCount * 2);
SymbolUsageAnalysis.BasicBlockAnalysisData.cs (1)
24new(() => new BasicBlockAnalysisData());
SymbolUsageAnalysis.Walker.cs (1)
32private static readonly ObjectPool<Walker> s_visitorPool = new(() => new Walker());
118 references to ObjectPool
Microsoft.CodeAnalysis.CodeStyle (117)
AbstractUseAutoPropertyAnalyzer.cs (5)
36private static readonly ObjectPool<ConcurrentStack<AnalysisResult>> s_analysisResultPool = new(() => new()); 37private static readonly ObjectPool<ConcurrentSet<IFieldSymbol>> s_fieldSetPool = new(() => new()); 38private static readonly ObjectPool<ConcurrentSet<SyntaxNode>> s_nodeSetPool = new(() => new()); 39private static readonly ObjectPool<ConcurrentDictionary<IFieldSymbol, ConcurrentSet<SyntaxNode>>> s_fieldWriteLocationPool = new(() => new()); 46private readonly ObjectPool<HashSet<string>> _fieldNamesPool;
Extensions.cs (23)
17public static PooledObject<StringBuilder> GetPooledObject(this ObjectPool<StringBuilder> pool) 20public static PooledObject<Stack<TItem>> GetPooledObject<TItem>(this ObjectPool<Stack<TItem>> pool) 23public static PooledObject<Queue<TItem>> GetPooledObject<TItem>(this ObjectPool<Queue<TItem>> pool) 26public static PooledObject<HashSet<TItem>> GetPooledObject<TItem>(this ObjectPool<HashSet<TItem>> pool) 29public static PooledObject<Dictionary<TKey, TValue>> GetPooledObject<TKey, TValue>(this ObjectPool<Dictionary<TKey, TValue>> pool) 33public static PooledObject<List<TItem>> GetPooledObject<TItem>(this ObjectPool<List<TItem>> pool) 36public static PooledObject<List<TItem>> GetPooledObject<TItem>(this ObjectPool<List<TItem>> pool, out List<TItem> list) 43public static PooledObject<T> GetPooledObject<T>(this ObjectPool<T> pool) where T : class 46public static StringBuilder AllocateAndClear(this ObjectPool<StringBuilder> pool) 54public static Stack<T> AllocateAndClear<T>(this ObjectPool<Stack<T>> pool) 62public static Queue<T> AllocateAndClear<T>(this ObjectPool<Queue<T>> pool) 70public static HashSet<T> AllocateAndClear<T>(this ObjectPool<HashSet<T>> pool) 78public static Dictionary<TKey, TValue> AllocateAndClear<TKey, TValue>(this ObjectPool<Dictionary<TKey, TValue>> pool) 87public static List<T> AllocateAndClear<T>(this ObjectPool<List<T>> pool) 95public static void ClearAndFree(this ObjectPool<StringBuilder> pool, StringBuilder sb) 112public static void ClearAndFree<T>(this ObjectPool<HashSet<T>> pool, HashSet<T> set) 130public static void ClearAndFree<T>(this ObjectPool<ConcurrentSet<T>> pool, ConcurrentSet<T> set) where T : notnull 146public static void ClearAndFree<T>(this ObjectPool<Stack<T>> pool, Stack<T> set) 164public static void ClearAndFree<T>(this ObjectPool<ConcurrentStack<T>> pool, ConcurrentStack<T> stack) 180public static void ClearAndFree<T>(this ObjectPool<Queue<T>> pool, Queue<T> set) 198public static void ClearAndFree<TKey, TValue>(this ObjectPool<Dictionary<TKey, TValue>> pool, Dictionary<TKey, TValue> map) 217public static void ClearAndFree<TKey, TValue>(this ObjectPool<ConcurrentDictionary<TKey, TValue>> pool, ConcurrentDictionary<TKey, TValue> map) 234public static void ClearAndFree<T>(this ObjectPool<List<T>> pool, List<T> list)
IntervalTree`1.cs (1)
29private static readonly ObjectPool<Stack<(Node? node, bool firstTime)>> s_stackPool
ISyntaxFactsExtensions.cs (1)
20private static readonly ObjectPool<Stack<(SyntaxNodeOrToken nodeOrToken, bool leading, bool trailing)>> s_stackPool
J\s\src\Dependencies\PooledObjects\ArrayBuilder.cs\ArrayBuilder.cs (7)
47private readonly ObjectPool<ArrayBuilder<T>>? _pool; 58private ArrayBuilder(ObjectPool<ArrayBuilder<T>> pool) 359var pool = _pool; 390private static readonly ObjectPool<ArrayBuilder<T>> s_poolInstance = CreatePool(); 418public static ObjectPool<ArrayBuilder<T>> CreatePool() 423public static ObjectPool<ArrayBuilder<T>> CreatePool(int size) 425ObjectPool<ArrayBuilder<T>>? pool = null;
J\s\src\Dependencies\PooledObjects\PooledDictionary.cs\PooledDictionary.cs (5)
16private readonly ObjectPool<PooledDictionary<K, V>> _pool; 18private PooledDictionary(ObjectPool<PooledDictionary<K, V>> pool, IEqualityComparer<K> keyComparer) 40private static readonly ObjectPool<PooledDictionary<K, V>> s_poolInstance = CreatePool(EqualityComparer<K>.Default); 43public static ObjectPool<PooledDictionary<K, V>> CreatePool(IEqualityComparer<K> keyComparer) 45ObjectPool<PooledDictionary<K, V>>? pool = null;
J\s\src\Dependencies\PooledObjects\PooledHashSet.cs\PooledHashSet.cs (5)
14private readonly ObjectPool<PooledHashSet<T>> _pool; 16private PooledHashSet(ObjectPool<PooledHashSet<T>> pool, IEqualityComparer<T> equalityComparer) : 29private static readonly ObjectPool<PooledHashSet<T>> s_poolInstance = CreatePool(EqualityComparer<T>.Default); 32public static ObjectPool<PooledHashSet<T>> CreatePool(IEqualityComparer<T> equalityComparer) 34ObjectPool<PooledHashSet<T>>? pool = null;
J\s\src\Dependencies\PooledObjects\PooledStringBuilder.cs\PooledStringBuilder.cs (5)
21private readonly ObjectPool<PooledStringBuilder> _pool; 23private PooledStringBuilder(ObjectPool<PooledStringBuilder> pool) 73private static readonly ObjectPool<PooledStringBuilder> s_poolInstance = CreatePool(); 81public static ObjectPool<PooledStringBuilder> CreatePool(int size = 32) 83ObjectPool<PooledStringBuilder>? pool = null;
Logger.LogBlock.cs (3)
17private static readonly ObjectPool<RoslynLogBlock> s_pool = new(() => new RoslynLogBlock(s_pool!), Math.Min(Environment.ProcessorCount * 8, 256)); 34private readonly ObjectPool<RoslynLogBlock> _pool; 45public RoslynLogBlock(ObjectPool<RoslynLogBlock> pool)
LogMessage.cs (6)
61private static readonly ObjectPool<StaticLogMessage> s_pool = SharedPools.Default<StaticLogMessage>(); 89private static readonly ObjectPool<LazyLogMessage> s_pool = SharedPools.Default<LazyLogMessage>(); 119private static readonly ObjectPool<LazyLogMessage<TArg0>> s_pool = SharedPools.Default<LazyLogMessage<TArg0>>(); 152private static readonly ObjectPool<LazyLogMessage<TArg0, TArg1>> s_pool = SharedPools.Default<LazyLogMessage<TArg0, TArg1>>(); 188private static readonly ObjectPool<LazyLogMessage<TArg0, TArg1, TArg2>> s_pool = SharedPools.Default<LazyLogMessage<TArg0, TArg1, TArg2>>(); 227private static readonly ObjectPool<LazyLogMessage<TArg0, TArg1, TArg2, TArg3>> s_pool = SharedPools.Default<LazyLogMessage<TArg0, TArg1, TArg2, TArg3>>();
ObjectPool`1.cs (1)
118internal ObjectPool(Func<ObjectPool<T>, T> factory, int size)
ObjectReader.cs (1)
321private static readonly ObjectPool<SegmentedList<T>> s_objectListPool
ObjectWriter.cs (4)
392private static readonly ObjectPool<SegmentedDictionary<object, int>> s_referenceDictionaryPool = 395private static readonly ObjectPool<SegmentedDictionary<object, int>> s_valueDictionaryPool = 405private static ObjectPool<SegmentedDictionary<object, int>> GetDictionaryPool(bool valueEquality) 410var pool = GetDictionaryPool(_valueEquality);
OrderPreservingMultiDictionary.cs (5)
29private readonly ObjectPool<OrderPreservingMultiDictionary<K, V>>? _pool; 31private OrderPreservingMultiDictionary(ObjectPool<OrderPreservingMultiDictionary<K, V>> pool) 54private static readonly ObjectPool<OrderPreservingMultiDictionary<K, V>> s_poolInstance = CreatePool(); 57public static ObjectPool<OrderPreservingMultiDictionary<K, V>> CreatePool() 59var pool = new ObjectPool<OrderPreservingMultiDictionary<K, V>>(
PooledDelegates.cs (1)
18public static readonly ObjectPool<T> Instance = new(() => new T(), 20);
PooledObject.cs (23)
17private readonly Action<ObjectPool<T>, T> _releaser; 18private readonly ObjectPool<T> _pool; 21public PooledObject(ObjectPool<T> pool, Func<ObjectPool<T>, T> allocator, Action<ObjectPool<T>, T> releaser) : this() 40public static PooledObject<StringBuilder> Create(ObjectPool<StringBuilder> pool) 48public static PooledObject<Stack<TItem>> Create<TItem>(ObjectPool<Stack<TItem>> pool) 56public static PooledObject<Queue<TItem>> Create<TItem>(ObjectPool<Queue<TItem>> pool) 64public static PooledObject<HashSet<TItem>> Create<TItem>(ObjectPool<HashSet<TItem>> pool) 72public static PooledObject<Dictionary<TKey, TValue>> Create<TKey, TValue>(ObjectPool<Dictionary<TKey, TValue>> pool) 81public static PooledObject<List<TItem>> Create<TItem>(ObjectPool<List<TItem>> pool) 91private static StringBuilder Allocator(ObjectPool<StringBuilder> pool) 94private static void Releaser(ObjectPool<StringBuilder> pool, StringBuilder sb) 97private static Stack<TItem> Allocator<TItem>(ObjectPool<Stack<TItem>> pool) 100private static void Releaser<TItem>(ObjectPool<Stack<TItem>> pool, Stack<TItem> obj) 103private static Queue<TItem> Allocator<TItem>(ObjectPool<Queue<TItem>> pool) 106private static void Releaser<TItem>(ObjectPool<Queue<TItem>> pool, Queue<TItem> obj) 109private static HashSet<TItem> Allocator<TItem>(ObjectPool<HashSet<TItem>> pool) 112private static void Releaser<TItem>(ObjectPool<HashSet<TItem>> pool, HashSet<TItem> obj) 115private static Dictionary<TKey, TValue> Allocator<TKey, TValue>(ObjectPool<Dictionary<TKey, TValue>> pool) 119private static void Releaser<TKey, TValue>(ObjectPool<Dictionary<TKey, TValue>> pool, Dictionary<TKey, TValue> obj) 123private static List<TItem> Allocator<TItem>(ObjectPool<List<TItem>> pool) 126private static void Releaser<TItem>(ObjectPool<List<TItem>> pool, List<TItem> obj)
SharedPools.cs (10)
25public static ObjectPool<T> BigDefault<T>() where T : class, new() 31public static ObjectPool<T> Default<T>() where T : class, new() 37public static ObjectPool<Dictionary<string, T>> StringIgnoreCaseDictionary<T>() 43public static readonly ObjectPool<HashSet<string>> StringIgnoreCaseHashSet = 49public static readonly ObjectPool<HashSet<string>> StringHashSet = 56public static readonly ObjectPool<byte[]> ByteArray = new(() => new byte[ByteBufferSize], ByteBufferCount); 57public static readonly ObjectPool<char[]> CharArray = new(() => new char[ByteBufferSize], CharBufferCount); 68public static readonly ObjectPool<T> Instance = new(() => new T(), 100); 73public static readonly ObjectPool<T> Instance = new(() => new T(), 20); 78public static readonly ObjectPool<Dictionary<string, T>> Instance =
StringTable.cs (5)
84private StringTable(ObjectPool<StringTable>? pool) 89private readonly ObjectPool<StringTable>? _pool; 90private static readonly ObjectPool<StringTable> s_staticPool = CreatePool(); 92private static ObjectPool<StringTable> CreatePool() 94var pool = new ObjectPool<StringTable>(pool => new StringTable(pool), Environment.ProcessorCount * 2);
SymbolKey.SymbolKeyReader.cs (1)
322private static readonly ObjectPool<SymbolKeyReader> s_readerPool = SharedPools.Default<SymbolKeyReader>();
SymbolKey.SymbolKeyWriter.cs (1)
55private static readonly ObjectPool<SymbolKeyWriter> s_writerPool = SharedPools.Default<SymbolKeyWriter>();
SymbolUsageAnalysis.BasicBlockAnalysisData.cs (1)
23private static readonly ObjectPool<BasicBlockAnalysisData> s_pool =
SymbolUsageAnalysis.Walker.cs (1)
32private static readonly ObjectPool<Walker> s_visitorPool = new(() => new Walker());
UseCollectionInitializerAnalyzer.cs (1)
36private static readonly ObjectPool<UseCollectionInitializerAnalyzer<TExpressionSyntax, TStatementSyntax, TObjectCreationExpressionSyntax, TMemberAccessExpressionSyntax, TInvocationExpressionSyntax, TExpressionStatementSyntax, TVariableDeclaratorSyntax>> s_pool
UseNamedMemberInitializerAnalyzer.cs (1)
32private static readonly ObjectPool<UseNamedMemberInitializerAnalyzer<TExpressionSyntax, TStatementSyntax, TObjectCreationExpressionSyntax, TMemberAccessExpressionSyntax, TAssignmentStatementSyntax, TVariableDeclaratorSyntax>> s_pool
Microsoft.CodeAnalysis.CSharp.CodeStyle (1)
ParenthesizedExpressionSyntaxExtensions.cs (1)
320private static readonly ObjectPool<Stack<SyntaxNode>> s_nodeStackPool = SharedPools.Default<Stack<SyntaxNode>>();