diff options
Diffstat (limited to 'src/mscorlib/src/System/Collections/Concurrent/ConcurrentDictionary.cs')
-rw-r--r-- | src/mscorlib/src/System/Collections/Concurrent/ConcurrentDictionary.cs | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/mscorlib/src/System/Collections/Concurrent/ConcurrentDictionary.cs b/src/mscorlib/src/System/Collections/Concurrent/ConcurrentDictionary.cs index 8b9014a103..436808c439 100644 --- a/src/mscorlib/src/System/Collections/Concurrent/ConcurrentDictionary.cs +++ b/src/mscorlib/src/System/Collections/Concurrent/ConcurrentDictionary.cs @@ -65,7 +65,7 @@ namespace System.Collections.Concurrent private volatile Tables m_tables; // Internal tables of the dictionary // NOTE: this is only used for compat reasons to serialize the comparer. // This should not be accessed from anywhere else outside of the serialization methods. - internal IEqualityComparer<TKey> m_comparer; + internal IEqualityComparer<TKey> m_comparer; private readonly bool m_growLockArray; // Whether to dynamically increase the size of the striped lock // How many times we resized becaused of collisions. @@ -102,6 +102,10 @@ namespace System.Collections.Concurrent private static bool IsValueWriteAtomic() { Type valueType = typeof(TValue); + if (valueType.IsEnum) + { + valueType = Enum.GetUnderlyingType(valueType); + } // // Section 12.6.6 of ECMA CLI explains which types can be read and written atomically without @@ -705,7 +709,6 @@ namespace System.Collections.Concurrent { count += m_tables.m_countPerLock[i]; } - } finally { @@ -1404,7 +1407,6 @@ namespace System.Collections.Concurrent /// </summary> private static int DefaultConcurrencyLevel { - get { return DEFAULT_CONCURRENCY_MULTIPLIER * PlatformHelper.ProcessorCount; } } @@ -1559,7 +1561,7 @@ namespace System.Collections.Concurrent /// </summary> private class DictionaryEnumerator : IDictionaryEnumerator { - IEnumerator<KeyValuePair<TKey, TValue>> m_enumerator; // Enumerator over the dictionary. + private IEnumerator<KeyValuePair<TKey, TValue>> m_enumerator; // Enumerator over the dictionary. internal DictionaryEnumerator(ConcurrentDictionary<TKey, TValue> dictionary) { |