From f6b11e22138c9172e2b1a3fd381832a2aa556d29 Mon Sep 17 00:00:00 2001 From: Marek Safar Date: Tue, 28 Feb 2017 17:51:03 +0100 Subject: [PATCH] [corlib][System] Concurrent collections from corefx --- external/corefx | 2 +- mcs/class/System/Makefile | 3 ++ mcs/class/System/ReferenceSources/SR.cs | 28 ------------- mcs/class/System/common.sources | 8 ++-- mcs/class/System/corefx/SR.cs | 48 ++++++++++++++++++++++ mcs/class/corlib/Makefile | 3 +- mcs/class/corlib/{corert => corefx}/SR.cs | 67 +++++++++++++++++++++++++++++++ mcs/class/corlib/corert/Debug.cs | 4 ++ mcs/class/corlib/corlib.dll.sources | 19 ++++----- 9 files changed, 140 insertions(+), 42 deletions(-) create mode 100644 mcs/class/System/corefx/SR.cs rename mcs/class/corlib/{corert => corefx}/SR.cs (89%) diff --git a/external/corefx b/external/corefx index c00dde208d2..c718457f054 160000 --- a/external/corefx +++ b/external/corefx @@ -1 +1 @@ -Subproject commit c00dde208d25f180d881c37d465410ed2edd6939 +Subproject commit c718457f0540c9b19be7f866dddb153e17ea3026 diff --git a/mcs/class/System/Makefile b/mcs/class/System/Makefile index 23554997cb6..19dcfaee734 100644 --- a/mcs/class/System/Makefile +++ b/mcs/class/System/Makefile @@ -14,6 +14,9 @@ RESOURCE_FILES = \ resources/Question.wav endif +RESX_RESOURCE_STRING = \ + ../../../external/corefx/src/System.Collections.Concurrent/src/Resources/Strings.resx + TEST_RESOURCES = \ Test/System/test-uri-props.txt \ Test/System/test-uri-props-manual.txt \ diff --git a/mcs/class/System/ReferenceSources/SR.cs b/mcs/class/System/ReferenceSources/SR.cs index 171360d9052..cacc4936713 100644 --- a/mcs/class/System/ReferenceSources/SR.cs +++ b/mcs/class/System/ReferenceSources/SR.cs @@ -104,34 +104,6 @@ partial class SR public const string NotSupported_ValueCollectionSet = "Mutating a value collection derived from a dictionary is not allowed."; public const string NotSupported_ReadOnlyCollection = "Collection is read-only."; public const string NotSupported_SortedListNestedWrite = "This operation is not supported on SortedList nested types because they require modifying the original SortedList."; - public const string BlockingCollection_ctor_BoundedCapacityRange = "The boundedCapacity argument must be positive."; - public const string BlockingCollection_ctor_CountMoreThanCapacity = "The collection argument contains more items than are allowed by the boundedCapacity."; - public const string BlockingCollection_Add_ConcurrentCompleteAdd = "CompleteAdding may not be used concurrently with additions to the collection."; - public const string BlockingCollection_Add_Failed = "The underlying collection didn't accept the item."; - public const string BlockingCollection_Take_CollectionModified = "The underlying collection was modified from outside of the BlockingCollection."; - public const string BlockingCollection_Completed = "The collection has been marked as complete with regards to additions."; - public const string BlockingCollection_Disposed = "The collection has been disposed."; - public const string BlockingCollection_TimeoutInvalid = "The specified timeout must represent a value between -1 and {0}, inclusive."; - public const string BlockingCollection_CantTakeWhenDone = "The collection argument is empty and has been marked as complete with regards to additions."; - public const string BlockingCollection_CantAddAnyWhenCompleted = "At least one of the specified collections is marked as complete with regards to additions."; - public const string BlockingCollection_CantTakeAnyWhenAllDone = "All collections are marked as complete with regards to additions."; - public const string BlockingCollection_ValidateCollectionsArray_ZeroSize = "The collections argument is a zero-length array."; - public const string BlockingCollection_ValidateCollectionsArray_LargeSize = "The collections length is greater than the supported range for 32 bit machine."; - public const string BlockingCollection_ValidateCollectionsArray_NullElems = "The collections argument contains at least one null element."; - public const string BlockingCollection_ValidateCollectionsArray_DispElems = "The collections argument contains at least one disposed element."; - public const string BlockingCollection_CompleteAdding_AlreadyDone = "The collection argument has already been marked as complete with regards to additions."; - public const string BlockingCollection_CopyTo_NonNegative = "The index argument must be greater than or equal zero."; - public const string BlockingCollection_CopyTo_TooManyElems = "The number of elements in the collection is greater than the available space from index to the end of the destination array."; - public const string BlockingCollection_CopyTo_MultiDim = "The array argument is multidimensional."; - public const string BlockingCollection_CopyTo_IncorrectType = "The array argument is of the incorrect type."; - public const string ConcurrentBag_Ctor_ArgumentNullException = "The collection argument is null."; - public const string ConcurrentBag_CopyTo_ArgumentNullException = "The array argument is null."; - public const string ConcurrentBag_CopyTo_ArgumentOutOfRangeException = "The index argument must be greater than or equal zero."; - public const string ConcurrentBag_CopyTo_ArgumentException_IndexGreaterThanLength = "The index argument must be less than the array length."; - public const string ConcurrentBag_CopyTo_ArgumentException_NoEnoughSpace = "The number of elements in the bag is greater than the available space from index to the end of the destination array."; - public const string ConcurrentBag_CopyTo_ArgumentException_InvalidArrayType = "The array argument is multidimensional or of an incorrect type."; - public const string ConcurrentCollection_SyncRoot_NotSupported = "The SyncRoot property may not be used for the synchronization of concurrent collections."; - public const string Common_OperationCanceled = "The operation was canceled."; public const string Barrier_ctor_ArgumentOutOfRange = "The participantCount argument must be non-negative and less than or equal to 32767."; public const string Barrier_AddParticipants_NonPositive_ArgumentOutOfRange = "The participantCount argument must be a positive value."; public const string Barrier_AddParticipants_Overflow_ArgumentOutOfRange = "Adding participantCount participants would result in the number of participants exceeding the maximum number allowed."; diff --git a/mcs/class/System/common.sources b/mcs/class/System/common.sources index 0efb5c41661..63ca1a082a2 100644 --- a/mcs/class/System/common.sources +++ b/mcs/class/System/common.sources @@ -354,9 +354,6 @@ ReferenceSources/Win32Exception.cs ../referencesource/System/regex/system/text/regularexpressions/compiledregexrunner.cs ../referencesource/System/regex/system/text/regularexpressions/compiledregexrunnerfactory.cs -../referencesource/System/sys/system/collections/concurrent/BlockingCollection.cs -../referencesource/System/sys/system/collections/concurrent/ConcurrentBag.cs - ../referencesource/System/compmod/system/collections/generic/bithelper.cs ../referencesource/System/compmod/system/collections/generic/debugview.cs ../referencesource/System/compmod/system/collections/generic/iset.cs @@ -924,8 +921,13 @@ ReferenceSources/Win32Exception.cs ../referencesource/System/compmod/microsoft/win32/safehandles/SafeProcessHandle.cs +corefx/SR.cs + ../../../external/corefx/src/System.Runtime.Extensions/src/System/CodeDom/Compiler/IndentedTextWriter.cs +../../../external/corefx/src/System.Collections.Concurrent/src/System/Collections/Concurrent/BlockingCollection.cs +../../../external/corefx/src/System.Collections.Concurrent/src/System/Collections/Concurrent/ConcurrentBag.cs + ../../../external/corefx/src/System.IO.Compression/src/System/IO/Compression/CompressionLevel.cs ../../../external/corefx/src/System.IO.Compression/src/System/IO/Compression/CompressionMode.cs ../../../external/corefx/src/System.IO.Compression/src/System/IO/Compression/GZipStream.cs diff --git a/mcs/class/System/corefx/SR.cs b/mcs/class/System/corefx/SR.cs new file mode 100644 index 00000000000..892f0113ccf --- /dev/null +++ b/mcs/class/System/corefx/SR.cs @@ -0,0 +1,48 @@ +// +// This file was generated by resx2sr tool +// + +partial class SR +{ + public const string BlockingCollection_Add_ConcurrentCompleteAdd = "CompleteAdding may not be used concurrently with additions to the collection."; + public const string BlockingCollection_Add_Failed = "The underlying collection didn't accept the item."; + public const string BlockingCollection_CantAddAnyWhenCompleted = "At least one of the specified collections is marked as complete with regards to additions."; + public const string BlockingCollection_CantTakeAnyWhenAllDone = "All collections are marked as complete with regards to additions."; + public const string BlockingCollection_CantTakeWhenDone = "The collection argument is empty and has been marked as complete with regards to additions."; + public const string BlockingCollection_Completed = "The collection has been marked as complete with regards to additions."; + public const string BlockingCollection_CopyTo_IncorrectType = "The array argument is of the incorrect type."; + public const string BlockingCollection_CopyTo_MultiDim = "The array argument is multidimensional."; + public const string BlockingCollection_CopyTo_NonNegative = "The index argument must be greater than or equal zero."; + public const string Collection_CopyTo_TooManyElems = "The number of elements in the collection is greater than the available space from index to the end of the destination array."; + public const string BlockingCollection_ctor_BoundedCapacityRange = "The boundedCapacity argument must be positive."; + public const string BlockingCollection_ctor_CountMoreThanCapacity = "The collection argument contains more items than are allowed by the boundedCapacity."; + public const string BlockingCollection_Disposed = "The collection has been disposed."; + public const string BlockingCollection_Take_CollectionModified = "The underlying collection was modified from outside of the BlockingCollection."; + public const string BlockingCollection_TimeoutInvalid = "The specified timeout must represent a value between -1 and {0}, inclusive."; + public const string BlockingCollection_ValidateCollectionsArray_DispElems = "The collections argument contains at least one disposed element."; + public const string BlockingCollection_ValidateCollectionsArray_LargeSize = "The collections length is greater than the supported range for 32 bit machine."; + public const string BlockingCollection_ValidateCollectionsArray_NullElems = "The collections argument contains at least one null element."; + public const string BlockingCollection_ValidateCollectionsArray_ZeroSize = "The collections argument is a zero-length array."; + public const string Common_OperationCanceled = "The operation was canceled."; + public const string ConcurrentBag_Ctor_ArgumentNullException = "The collection argument is null."; + public const string ConcurrentBag_CopyTo_ArgumentNullException = "The array argument is null."; + public const string Collection_CopyTo_ArgumentOutOfRangeException = "The index argument must be greater than or equal zero."; + public const string ConcurrentCollection_SyncRoot_NotSupported = "The SyncRoot property may not be used for the synchronization of concurrent collections."; + public const string ConcurrentDictionary_ArrayIncorrectType = "The array is multidimensional, or the type parameter for the set cannot be cast automatically to the type of the destination array."; + public const string ConcurrentDictionary_SourceContainsDuplicateKeys = "The source argument contains duplicate keys."; + public const string ConcurrentDictionary_ConcurrencyLevelMustBePositive = "The concurrencyLevel argument must be positive."; + public const string ConcurrentDictionary_CapacityMustNotBeNegative = "The capacity argument must be greater than or equal to zero."; + public const string ConcurrentDictionary_IndexIsNegative = "The index argument is less than zero."; + public const string ConcurrentDictionary_ArrayNotLargeEnough = "The index is equal to or greater than the length of the array, or the number of elements in the dictionary is greater than the available space from index to the end of the destination array."; + public const string ConcurrentDictionary_KeyAlreadyExisted = "The key already existed in the dictionary."; + public const string ConcurrentDictionary_ItemKeyIsNull = "TKey is a reference type and item.Key is null."; + public const string ConcurrentDictionary_TypeOfKeyIncorrect = "The key was of an incorrect type for this dictionary."; + public const string ConcurrentDictionary_TypeOfValueIncorrect = "The value was of an incorrect type for this dictionary."; + public const string ConcurrentStack_PushPopRange_CountOutOfRange = "The count argument must be greater than or equal to zero."; + public const string ConcurrentStack_PushPopRange_InvalidCount = "The sum of the startIndex and count arguments must be less than or equal to the collection's Count."; + public const string ConcurrentStack_PushPopRange_StartOutOfRange = "The startIndex argument must be greater than or equal to zero."; + public const string Partitioner_DynamicPartitionsNotSupported = "Dynamic partitions are not supported by this partitioner."; + public const string PartitionerStatic_CanNotCallGetEnumeratorAfterSourceHasBeenDisposed = "Can not call GetEnumerator on partitions after the source enumerable is disposed"; + public const string PartitionerStatic_CurrentCalledBeforeMoveNext = "MoveNext must be called at least once before calling Current."; + public const string ConcurrentBag_Enumerator_EnumerationNotStartedOrAlreadyFinished = "Enumeration has either not started or has already finished."; +} diff --git a/mcs/class/corlib/Makefile b/mcs/class/corlib/Makefile index 965d85ddee2..19b9392fc78 100644 --- a/mcs/class/corlib/Makefile +++ b/mcs/class/corlib/Makefile @@ -27,7 +27,8 @@ endif RESOURCE_STRINGS = ../referencesource/mscorlib/mscorlib.txt RESX_RESOURCE_STRING = \ - ../../../external/corert/src/System.Private.CoreLib/src/Resources/Strings.resx + ../../../external/corert/src/System.Private.CoreLib/src/Resources/Strings.resx \ + ../../../external/corefx/src/System.Collections.Concurrent/src/Resources/Strings.resx LIBRARY_COMPILE = $(BOOT_COMPILE) LIBRARY_INSTALL_DIR = $(mono_libdir)/mono/$(FRAMEWORK_VERSION) diff --git a/mcs/class/corlib/corert/SR.cs b/mcs/class/corlib/corefx/SR.cs similarity index 89% rename from mcs/class/corlib/corert/SR.cs rename to mcs/class/corlib/corefx/SR.cs index 09ed641b025..06663603968 100644 --- a/mcs/class/corlib/corert/SR.cs +++ b/mcs/class/corlib/corefx/SR.cs @@ -194,6 +194,7 @@ partial class SR public const string Argument_OneOfCulturesNotSupported = "Culture name {0} or {1} is not supported."; public const string Argument_OnlyMscorlib = "Only mscorlib's assembly is valid."; public const string Argument_OutOfOrderDateTimes = "The DateStart property must come before the DateEnd property."; + public const string ArgumentOutOfRange_HugeArrayNotSupported = "Arrays larger than 2GB are not supported."; public const string ArgumentOutOfRange_Index = "Index was out of range. Must be non-negative and less than the size of the collection."; public const string ArgumentOutOfRange_NeedNonNegNum = "Non-negative number required."; public const string ArgumentOutOfRange_NeedNonNegNumRequired = "Non-negative number required."; @@ -649,4 +650,70 @@ partial class SR public const string IO_SeekAppendOverwrite = "Unable seek backward to overwrite data that previously existed in a file opened in Append mode."; public const string IO_FileTooLongOrHandleNotSync = "IO operation will not work. Most likely the file will become too long or the handle was not opened to support synchronous IO operations."; public const string IndexOutOfRange_IORaceCondition = "Probable I/O race condition detected while copying memory. The I/O package is not thread safe by default. In multithreaded applications, a stream must be accessed in a thread-safe way, such as a thread-safe wrapper returned by TextReader's or TextWriter's Synchronized methods. This also applies to classes like StreamWriter and StreamReader."; + public const string Argument_StreamNotSeekable = "Stream was not seekable."; + public const string Arg_ResourceFileUnsupportedVersion = "The ResourceReader class does not know how to read this version of .resources files."; + public const string Resources_StreamNotValid = "Stream is not a valid resource file."; + public const string BadImageFormat_ResourcesHeaderCorrupted = "Corrupt .resources file. Unable to read resources from this file because of invalid header information. Try regenerating the .resources file."; + public const string Argument_StreamNotReadable = "Stream was not readable."; + public const string BadImageFormat_NegativeStringLength = "Corrupt .resources file. String length must be non-negative."; + public const string BadImageFormat_ResourcesNameInvalidOffset = "Corrupt .resources file. The Invalid offset into name section is ."; + public const string BadImageFormat_TypeMismatch = "Corrupt .resources file. The specified type doesn't match the available data in the stream."; + public const string BadImageFormat_ResourceNameCorrupted_NameIndex = "Corrupt .resources file. The resource name for name index that extends past the end of the stream is "; + public const string BadImageFormat_ResourcesDataInvalidOffset = "Corrupt .resources file. Invalid offset into data section is "; + public const string Format_Bad7BitInt32 = "Too many bytes in what should have been a 7 bit encoded Int32."; + public const string BadImageFormat_InvalidType = "Corrupt .resources file. The specified type doesn't exist."; + public const string ResourceReaderIsClosed = "ResourceReader is closed."; + public const string Arg_MissingManifestResourceException = "Unable to find manifest resource."; + public const string Serialization_MissingKeys = "The keys for this dictionary are missing."; + public const string Serialization_NullKey = "One of the serialized keys is null."; + public const string NotSupported_KeyCollectionSet = "Mutating a key collection derived from a dictionary is not allowed."; + public const string NotSupported_ValueCollectionSet = "Mutating a value collection derived from a dictionary is not allowed."; + public const string IO_IO_StreamTooLong = "Stream was too long."; + public const string UnauthorizedAccess_MemStreamBuffer = "MemoryStream's internal buffer cannot be accessed."; + public const string NotSupported_MemStreamNotExpandable = "Memory stream is not expandable."; + public const string IO_IO_SeekBeforeBegin = "An attempt was made to move the position before the beginning of the stream."; + public const string ArgumentNull_Stream = "Stream cannot be null."; + public const string IO_IO_InvalidStringLen_Len = "BinaryReader encountered an invalid string length of {0} characters."; + public const string ArgumentOutOfRange_BinaryReaderFillBuffer = "The number of bytes requested does not fit into BinaryReader's internal buffer."; + public const string BlockingCollection_Add_ConcurrentCompleteAdd = "CompleteAdding may not be used concurrently with additions to the collection."; + public const string BlockingCollection_Add_Failed = "The underlying collection didn't accept the item."; + public const string BlockingCollection_CantAddAnyWhenCompleted = "At least one of the specified collections is marked as complete with regards to additions."; + public const string BlockingCollection_CantTakeAnyWhenAllDone = "All collections are marked as complete with regards to additions."; + public const string BlockingCollection_CantTakeWhenDone = "The collection argument is empty and has been marked as complete with regards to additions."; + public const string BlockingCollection_Completed = "The collection has been marked as complete with regards to additions."; + public const string BlockingCollection_CopyTo_IncorrectType = "The array argument is of the incorrect type."; + public const string BlockingCollection_CopyTo_MultiDim = "The array argument is multidimensional."; + public const string BlockingCollection_CopyTo_NonNegative = "The index argument must be greater than or equal zero."; + public const string Collection_CopyTo_TooManyElems = "The number of elements in the collection is greater than the available space from index to the end of the destination array."; + public const string BlockingCollection_ctor_BoundedCapacityRange = "The boundedCapacity argument must be positive."; + public const string BlockingCollection_ctor_CountMoreThanCapacity = "The collection argument contains more items than are allowed by the boundedCapacity."; + public const string BlockingCollection_Disposed = "The collection has been disposed."; + public const string BlockingCollection_Take_CollectionModified = "The underlying collection was modified from outside of the BlockingCollection."; + public const string BlockingCollection_TimeoutInvalid = "The specified timeout must represent a value between -1 and {0}, inclusive."; + public const string BlockingCollection_ValidateCollectionsArray_DispElems = "The collections argument contains at least one disposed element."; + public const string BlockingCollection_ValidateCollectionsArray_LargeSize = "The collections length is greater than the supported range for 32 bit machine."; + public const string BlockingCollection_ValidateCollectionsArray_NullElems = "The collections argument contains at least one null element."; + public const string BlockingCollection_ValidateCollectionsArray_ZeroSize = "The collections argument is a zero-length array."; + public const string Common_OperationCanceled = "The operation was canceled."; + public const string ConcurrentBag_Ctor_ArgumentNullException = "The collection argument is null."; + public const string ConcurrentBag_CopyTo_ArgumentNullException = "The array argument is null."; + public const string Collection_CopyTo_ArgumentOutOfRangeException = "The index argument must be greater than or equal zero."; + public const string ConcurrentCollection_SyncRoot_NotSupported = "The SyncRoot property may not be used for the synchronization of concurrent collections."; + public const string ConcurrentDictionary_ArrayIncorrectType = "The array is multidimensional, or the type parameter for the set cannot be cast automatically to the type of the destination array."; + public const string ConcurrentDictionary_SourceContainsDuplicateKeys = "The source argument contains duplicate keys."; + public const string ConcurrentDictionary_ConcurrencyLevelMustBePositive = "The concurrencyLevel argument must be positive."; + public const string ConcurrentDictionary_CapacityMustNotBeNegative = "The capacity argument must be greater than or equal to zero."; + public const string ConcurrentDictionary_IndexIsNegative = "The index argument is less than zero."; + public const string ConcurrentDictionary_ArrayNotLargeEnough = "The index is equal to or greater than the length of the array, or the number of elements in the dictionary is greater than the available space from index to the end of the destination array."; + public const string ConcurrentDictionary_KeyAlreadyExisted = "The key already existed in the dictionary."; + public const string ConcurrentDictionary_ItemKeyIsNull = "TKey is a reference type and item.Key is null."; + public const string ConcurrentDictionary_TypeOfKeyIncorrect = "The key was of an incorrect type for this dictionary."; + public const string ConcurrentDictionary_TypeOfValueIncorrect = "The value was of an incorrect type for this dictionary."; + public const string ConcurrentStack_PushPopRange_CountOutOfRange = "The count argument must be greater than or equal to zero."; + public const string ConcurrentStack_PushPopRange_InvalidCount = "The sum of the startIndex and count arguments must be less than or equal to the collection's Count."; + public const string ConcurrentStack_PushPopRange_StartOutOfRange = "The startIndex argument must be greater than or equal to zero."; + public const string Partitioner_DynamicPartitionsNotSupported = "Dynamic partitions are not supported by this partitioner."; + public const string PartitionerStatic_CanNotCallGetEnumeratorAfterSourceHasBeenDisposed = "Can not call GetEnumerator on partitions after the source enumerable is disposed"; + public const string PartitionerStatic_CurrentCalledBeforeMoveNext = "MoveNext must be called at least once before calling Current."; + public const string ConcurrentBag_Enumerator_EnumerationNotStartedOrAlreadyFinished = "Enumeration has either not started or has already finished."; } diff --git a/mcs/class/corlib/corert/Debug.cs b/mcs/class/corlib/corert/Debug.cs index 6a889367529..7a7b21675c7 100644 --- a/mcs/class/corlib/corert/Debug.cs +++ b/mcs/class/corlib/corert/Debug.cs @@ -9,5 +9,9 @@ namespace System.Diagnostics.Private public static void Assert (bool condition, string message) { } + + public static void Fail (string message) + { + } } } diff --git a/mcs/class/corlib/corlib.dll.sources b/mcs/class/corlib/corlib.dll.sources index d6faf256138..dd7ac01ff3f 100644 --- a/mcs/class/corlib/corlib.dll.sources +++ b/mcs/class/corlib/corlib.dll.sources @@ -1107,14 +1107,6 @@ ReferenceSources/Type.cs ../referencesource/mscorlib/system/collections/generic/keyvaluepair.cs ../referencesource/mscorlib/system/collections/generic/list.cs -../referencesource/mscorlib/system/collections/Concurrent/ConcurrentDictionary.cs -../referencesource/mscorlib/system/collections/Concurrent/ConcurrentQueue.cs -../referencesource/mscorlib/system/collections/Concurrent/ConcurrentStack.cs -../referencesource/mscorlib/system/collections/Concurrent/IProducerConsumerCollection.cs -../referencesource/mscorlib/system/collections/Concurrent/OrderablePartitioner.cs -../referencesource/mscorlib/system/collections/Concurrent/Partitioner.cs -../referencesource/mscorlib/system/collections/Concurrent/PartitionerStatic.cs - ../referencesource/mscorlib/system/diagnostics/assert.cs ../referencesource/mscorlib/system/diagnostics/assertfilter.cs ../referencesource/mscorlib/system/diagnostics/assertfilters.cs @@ -1646,7 +1638,6 @@ ReferenceSources/Type.cs ../referencesource/mscorlib/microsoft/win32/safehandles/win32safehandles.cs corert/Debug.cs -corert/SR.cs ../../../external/corert/src/Common/src/System/Numerics/Hashing/HashHelpers.cs @@ -1660,3 +1651,13 @@ corert/SR.cs ../../../external/corert/src/System.Private.CoreLib/src/System/Runtime/CompilerServices/ITuple.cs ../../../external/corert/src/System.Private.CoreLib/src/System/Runtime/CompilerServices/TupleElementNamesAttribute.cs +corefx/SR.cs + +../../../external/corefx/src/System.Collections.Concurrent/src/System/Collections/Concurrent/CDSCollectionETWBCLProvider.cs +../../../external/corefx/src/System.Collections.Concurrent/src/System/Collections/Concurrent/ConcurrentDictionary.cs +../../../external/corefx/src/System.Collections.Concurrent/src/System/Collections/Concurrent/ConcurrentQueue.cs +../../../external/corefx/src/System.Collections.Concurrent/src/System/Collections/Concurrent/ConcurrentStack.cs +../../../external/corefx/src/System.Collections.Concurrent/src/System/Collections/Concurrent/IProducerConsumerCollection.cs +../../../external/corefx/src/System.Collections.Concurrent/src/System/Collections/Concurrent/OrderablePartitioner.cs +../../../external/corefx/src/System.Collections.Concurrent/src/System/Collections/Concurrent/Partitioner.cs +../../../external/corefx/src/System.Collections.Concurrent/src/System/Collections/Concurrent/PartitionerStatic.cs -- 2.11.4.GIT