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; 2045_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) 901ConcurrentDictionary<TKey, TValue>.VolatileNode[]? buckets = _buckets ??= _dictionary._tables._buckets; 945if (tables != _tables) 947tables = _tables; 1082TryAddInternal(_tables, key, null, value, updateIfExists: true, acquireLock: true, out _); 1111IEqualityComparer<TKey>? comparer = _tables._comparer; 1159foreach (int value in _tables._countPerLock) 1194Tables tables = _tables; 1236Tables tables = _tables; 1268Tables tables = _tables; 1320Tables tables = _tables; 1345if (tables != _tables) 1347tables = _tables; 1393Tables tables = _tables; 1418if (tables != _tables) 1420tables = _tables; 1459Tables tables = _tables; 1484if (tables != _tables) 1486tables = _tables; 1933!_tables._countPerLock.AsSpan().ContainsAnyExcept(0); 1950if (tables != _tables) 2065CDSCollectionETWBCLProvider.Log.ConcurrentDictionary_AcquiringAllLocks(_tables._buckets.Length); 2070AcquirePostFirstLock(_tables, ref locksAcquired); 2071Debug.Assert(locksAcquired == _tables._locks.Length); 2083object[] locks = _tables._locks; 2119object[] locks = _tables._locks; 2144foreach (VolatileNode bucket in _tables._buckets) 2180foreach (VolatileNode bucket in _tables._buckets) 2343Debug.Assert(IsCompatibleKey<TAlternateKey>(dictionary._tables)); 2391Tables tables = Dictionary._tables; 2410if (tables != Dictionary._tables) 2412tables = Dictionary._tables; 2550Tables tables = Dictionary._tables; 2596Tables tables = Dictionary._tables; 2613if (tables != Dictionary._tables) 2615tables = Dictionary._tables;