3 writes to _tables
System.Collections.Concurrent (3)
System\Collections\Concurrent\ConcurrentDictionary.cs (3)
226_tables = new Tables(buckets, locks, countPerLock, comparer); 726_tables = newTables; 2070_tables = newTables;
54 references to _tables
System.Collections.Concurrent (54)
System\Collections\Concurrent\ConcurrentDictionary.cs (54)
26/// When using <see cref="_tables"/>, we must read the volatile _tables field into a local variable: 245if (!IsCompatibleKey<TAlternateKey>(_tables)) 266if (IsCompatibleKey<TAlternateKey>(_tables)) 295/// The comparer. It's passed in to avoid having to look it up via a volatile read on <see cref="_tables"/>; 314/// The comparer. It's passed in to avoid having to look it up via a volatile read on <see cref="_tables"/>; 343if (!TryAddInternal(_tables, pair.Key, null, pair.Value, updateIfExists: false, acquireLock: false, out _)) 351Tables tables = _tables; 374return TryAddInternal(_tables, key, null, value, updateIfExists: false, acquireLock: true, out _); 442Tables tables = _tables; 456if (tables != _tables) 458tables = _tables; 524Tables tables = _tables; 613return TryUpdateInternal(_tables, key, null, newValue, comparisonValue); 651if (tables != _tables) 653tables = _tables; 724Tables tables = _tables; 809foreach (VolatileNode bucket in _tables._buckets) 824foreach (VolatileNode bucket in _tables._buckets) 839foreach (VolatileNode bucket in _tables._buckets) 908_buckets = _dictionary._tables._buckets; 970if (tables != _tables) 972tables = _tables; 1107TryAddInternal(_tables, key, null, value, updateIfExists: true, acquireLock: true, out _); 1136IEqualityComparer<TKey>? comparer = _tables._comparer; 1184foreach (int value in _tables._countPerLock) 1219Tables tables = _tables; 1261Tables tables = _tables; 1293Tables tables = _tables; 1345Tables tables = _tables; 1370if (tables != _tables) 1372tables = _tables; 1418Tables tables = _tables; 1443if (tables != _tables) 1445tables = _tables; 1484Tables tables = _tables; 1509if (tables != _tables) 1511tables = _tables; 1958!_tables._countPerLock.AsSpan().ContainsAnyExcept(0); 1975if (tables != _tables) 2090CDSCollectionETWBCLProvider.Log.ConcurrentDictionary_AcquiringAllLocks(_tables._buckets.Length); 2095AcquirePostFirstLock(_tables, ref locksAcquired); 2096Debug.Assert(locksAcquired == _tables._locks.Length); 2108object[] locks = _tables._locks; 2144object[] locks = _tables._locks; 2169foreach (VolatileNode bucket in _tables._buckets) 2205foreach (VolatileNode bucket in _tables._buckets) 2368Debug.Assert(IsCompatibleKey<TAlternateKey>(dictionary._tables)); 2416Tables tables = Dictionary._tables; 2435if (tables != Dictionary._tables) 2437tables = Dictionary._tables; 2575Tables tables = Dictionary._tables; 2621Tables tables = Dictionary._tables; 2638if (tables != Dictionary._tables) 2640tables = Dictionary._tables;