Imported Upstream version 5.2.0.175

Former-commit-id: bb0468d0f257ff100aa895eb5fe583fb5dfbf900
This commit is contained in:
Xamarin Public Jenkins (auto-signing)
2017-06-07 13:16:24 +00:00
parent 4bdbaf4a88
commit 966bba02bb
8776 changed files with 346420 additions and 149650 deletions

View File

@ -1,7 +1,6 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2013
VisualStudioVersion = 12.0.31101.0
# Visual Studio 14
VisualStudioVersion = 14.0.25420.1
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Threading.Tasks.Parallel.Tests", "tests\System.Threading.Tasks.Parallel.Tests.csproj", "{DE29C320-2ECA-43FD-9F41-6F4F6C6BACD5}"
ProjectSection(ProjectDependencies) = postProject
@ -9,28 +8,43 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Threading.Tasks.Para
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Threading.Tasks.Parallel", "src\System.Threading.Tasks.Parallel.csproj", "{A6BA5DF2-772E-4DA1-BC2D-89FF4A21EE4F}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".nuget", ".nuget", "{47919FF5-DA40-4D99-AF2D-F560282AA913}"
ProjectSection(SolutionItems) = preProject
..\.nuget\packages.Windows_NT.config = ..\.nuget\packages.Windows_NT.config
ProjectSection(ProjectDependencies) = postProject
{E7ACD1F9-E309-4AAB-93D3-6A68FC32236B} = {E7ACD1F9-E309-4AAB-93D3-6A68FC32236B}
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Threading.Tasks.Parallel", "ref\System.Threading.Tasks.Parallel.csproj", "{E7ACD1F9-E309-4AAB-93D3-6A68FC32236B}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
DebugNETCoreAppnetcoreappnetcoreapp|AnyCPU = DebugNETCoreAppnetcoreappnetcoreapp|AnyCPU
ReleaseNETCoreAppnetcoreappnetcoreapp|AnyCPU = ReleaseNETCoreAppnetcoreappnetcoreapp|AnyCPU
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{DE29C320-2ECA-43FD-9F41-6F4F6C6BACD5}.DebugNETCoreAppnetcoreappnetcoreapp|AnyCPU.ActiveCfg = netcoreapp-Debug|Any CPU
{DE29C320-2ECA-43FD-9F41-6F4F6C6BACD5}.DebugNETCoreAppnetcoreappnetcoreapp|AnyCPU.Build.0 = netcoreapp-Debug|Any CPU
{DE29C320-2ECA-43FD-9F41-6F4F6C6BACD5}.ReleaseNETCoreAppnetcoreappnetcoreapp|AnyCPU.ActiveCfg = netcoreapp-Release|Any CPU
{DE29C320-2ECA-43FD-9F41-6F4F6C6BACD5}.ReleaseNETCoreAppnetcoreappnetcoreapp|AnyCPU.Build.0 = netcoreapp-Release|Any CPU
{A6BA5DF2-772E-4DA1-BC2D-89FF4A21EE4F}.DebugNETCoreAppnetcoreappnetcoreapp|AnyCPU.ActiveCfg = netcoreapp-Debug|Any CPU
{A6BA5DF2-772E-4DA1-BC2D-89FF4A21EE4F}.DebugNETCoreAppnetcoreappnetcoreapp|AnyCPU.Build.0 = netcoreapp-Debug|Any CPU
{A6BA5DF2-772E-4DA1-BC2D-89FF4A21EE4F}.ReleaseNETCoreAppnetcoreappnetcoreapp|AnyCPU.ActiveCfg = netcoreapp-Release|Any CPU
{A6BA5DF2-772E-4DA1-BC2D-89FF4A21EE4F}.ReleaseNETCoreAppnetcoreappnetcoreapp|AnyCPU.Build.0 = netcoreapp-Release|Any CPU
{DE29C320-2ECA-43FD-9F41-6F4F6C6BACD5}.Debug|Any CPU.ActiveCfg = netstandard-Debug|Any CPU
{DE29C320-2ECA-43FD-9F41-6F4F6C6BACD5}.Debug|Any CPU.Build.0 = netstandard-Debug|Any CPU
{DE29C320-2ECA-43FD-9F41-6F4F6C6BACD5}.Release|Any CPU.ActiveCfg = netstandard-Release|Any CPU
{DE29C320-2ECA-43FD-9F41-6F4F6C6BACD5}.Release|Any CPU.Build.0 = netstandard-Release|Any CPU
{A6BA5DF2-772E-4DA1-BC2D-89FF4A21EE4F}.Debug|Any CPU.ActiveCfg = netcoreapp-Debug|Any CPU
{A6BA5DF2-772E-4DA1-BC2D-89FF4A21EE4F}.Debug|Any CPU.Build.0 = netcoreapp-Debug|Any CPU
{A6BA5DF2-772E-4DA1-BC2D-89FF4A21EE4F}.Release|Any CPU.ActiveCfg = netcoreapp-Release|Any CPU
{A6BA5DF2-772E-4DA1-BC2D-89FF4A21EE4F}.Release|Any CPU.Build.0 = netcoreapp-Release|Any CPU
{E7ACD1F9-E309-4AAB-93D3-6A68FC32236B}.Debug|Any CPU.ActiveCfg = netcoreapp-Debug|Any CPU
{E7ACD1F9-E309-4AAB-93D3-6A68FC32236B}.Debug|Any CPU.Build.0 = netcoreapp-Debug|Any CPU
{E7ACD1F9-E309-4AAB-93D3-6A68FC32236B}.Release|Any CPU.ActiveCfg = netcoreapp-Release|Any CPU
{E7ACD1F9-E309-4AAB-93D3-6A68FC32236B}.Release|Any CPU.Build.0 = netcoreapp-Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{DE29C320-2ECA-43FD-9F41-6F4F6C6BACD5} = {1A2F9F4A-A032-433E-B914-ADD5992BB178}
{A6BA5DF2-772E-4DA1-BC2D-89FF4A21EE4F} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD}
{E7ACD1F9-E309-4AAB-93D3-6A68FC32236B} = {2E666815-2EDB-464B-9DF6-380BF4789AD4}
EndGlobalSection
EndGlobal

View File

@ -4,5 +4,6 @@
<PropertyGroup>
<AssemblyVersion>4.0.3.0</AssemblyVersion>
<IsNETCoreApp>true</IsNETCoreApp>
<IsUAP>true</IsUAP>
</PropertyGroup>
</Project>

View File

@ -1,6 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
<PropertyGroup>
<ProjectGuid>{E7ACD1F9-E309-4AAB-93D3-6A68FC32236B}</ProjectGuid>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'netcoreapp-Debug|AnyCPU'" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'netcoreapp-Release|AnyCPU'" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'uap-Debug|AnyCPU'" />

View File

@ -3,6 +3,7 @@
<PropertyGroup>
<BuildConfigurations>
netcoreapp;
uap-Windows_NT;
</BuildConfigurations>
</PropertyGroup>
</Project>

View File

@ -1,64 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">

View File

@ -9,8 +9,10 @@
<DefineConstants>$(DefineConstants);CONCURRENT_COLLECTIONS;FEATURE_TRACING</DefineConstants>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='netcoreapp-Debug|AnyCPU'" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='netcoreapp-Release|AnyCPU'" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'netcoreapp-Debug|AnyCPU'" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'netcoreapp-Release|AnyCPU'" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'uap-Windows_NT-Debug|AnyCPU'" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'uap-Windows_NT-Release|AnyCPU'" />
<ItemGroup>
<Compile Include="System\Threading\PlatformHelper.cs" />
<Compile Include="System\Threading\Tasks\Box.cs" />
@ -20,9 +22,6 @@
<Compile Include="System\Threading\Tasks\ParallelRangeManager.cs" />
<Compile Include="System\Threading\Tasks\TaskReplicator.cs" />
</ItemGroup>
<ItemGroup>
<TargetingPackReference Include="mscorlib" />
</ItemGroup>
<ItemGroup>
<Reference Include="System.Collections.Concurrent" />
<Reference Include="System.Diagnostics.Contracts" />

View File

@ -5,7 +5,7 @@
namespace System.Threading
{
/// <summary>
/// A helper class to get the number of preocessors, it updates the numbers of processors every sampling interval
/// A helper class to get the number of processors, it updates the numbers of processors every sampling interval
/// </summary>
internal static class PlatformHelper
{

View File

@ -1 +1 @@
303dd2a6dafd2740261ab8816f1920ec6acc56ca
8c3cad7427c3de2c506f3bfce13e01c50680c612

View File

@ -108,7 +108,7 @@ namespace System.Threading.Tasks
// we found work
nFromInclusiveLocal = currentRange._nFromInclusive + nMyOffset;
nToExclusiveLocal = nFromInclusiveLocal + _nIncrementValue;
nToExclusiveLocal = unchecked(nFromInclusiveLocal + _nIncrementValue);
// Check for going past end of range, or wrapping
if ((nToExclusiveLocal > currentRange._nToExclusive) || (nToExclusiveLocal < currentRange._nFromInclusive))
@ -242,10 +242,10 @@ namespace System.Threading.Tasks
_indexRanges[i]._bRangeFinished = 0;
// now increment it to find the toExclusive value for our range
nCurrentIndex += nRangeSize;
nCurrentIndex = unchecked(nCurrentIndex + nRangeSize);
// detect integer overflow or range overage and snap to nToExclusive
if (nCurrentIndex < nCurrentIndex - nRangeSize ||
if (nCurrentIndex < unchecked(nCurrentIndex - nRangeSize) ||
nCurrentIndex > nToExclusive)
{
// this should only happen at the last index

View File

@ -2,7 +2,7 @@
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<BuildConfigurations>
netstandard1.5;
netstandard;
</BuildConfigurations>
</PropertyGroup>
</Project>

View File

@ -25,7 +25,7 @@ namespace System.Threading.Tasks.Tests
private IList<int> _collection = null; // the collection used in Foreach
private readonly double[] _results; // global place to store the workload result for verication
private readonly double[] _results; // global place to store the workload result for verification
// data structure used with ParallelLoopState<TLocal>
// each row is the sequence of loop "index" finished in the same thread
@ -774,7 +774,7 @@ namespace System.Threading.Tasks.Tests
}
/// <summary>
/// Each Parallel.For loop stores the result of its compuatation in the 'result' array.
/// Each Parallel.For loop stores the result of its computation in the 'result' array.
/// This function checks if result[i] for each i from 0 to _parameters.Count is correct
/// A result[i] == double[i] means that the body for index i was run more than once
/// </summary>
@ -790,7 +790,7 @@ namespace System.Threading.Tasks.Tests
if (_results[i] < minLimit || _results[i] > maxLimit)
{
Assert.False(double.MinValue == _results[i], String.Format("results[{0}] has been revisisted", i));
Assert.False(double.MinValue == _results[i], String.Format("results[{0}] has been revisited", i));
Assert.True(_parameters.StateOption == ActionWithState.Stop && 0 == _results[i],
String.Format("Incorrect results[{0}]. Expected result to lie between {1} and {2} but got {3})", i, minLimit, maxLimit, _results[i]));
@ -917,7 +917,7 @@ namespace System.Threading.Tasks.Tests
}
/// <summary>
/// Partitioner types used for ParallelForeach with partioners
/// Partitioner types used for ParallelForeach with partitioners
/// </summary>
[Flags]
public enum PartitionerType

View File

@ -351,7 +351,7 @@ namespace System.Threading.Tasks.Tests
int expectCounter = 0;
for (int i = 0; i < count; i++)
{
expectCounter += i;
expectCounter = unchecked(expectCounter + i);
}
int counter = 0;
@ -463,7 +463,7 @@ namespace System.Threading.Tasks.Tests
for (int i = 0; i < data.Length; i++)
{
data[i] = i;
expectCounter += i;
expectCounter = unchecked(expectCounter + i);
}
int counter = 0;
@ -523,7 +523,7 @@ namespace System.Threading.Tasks.Tests
for (int i = 0; i < data.Length; i++)
{
data[i] = i;
expectCounter += i;
expectCounter = unchecked(expectCounter + i);
}
int counter = 0;
@ -557,7 +557,7 @@ namespace System.Threading.Tasks.Tests
0,
count,
() => 0,
(i, state, local) => local += i,
(i, state, local) => unchecked(local += i),
(local) => Interlocked.Add(ref sum, local)
);
});
@ -566,7 +566,7 @@ namespace System.Threading.Tasks.Tests
// check that the average is correct. (if the totals are correct, the avgs will also be correct.)
int expectedTotal = 0;
for (int i = 0; i < count; i++)
expectedTotal += i;
expectedTotal = unchecked(expectedTotal + i);
Assert.Equal(expectedTotal, sum);
}
@ -898,7 +898,7 @@ namespace System.Threading.Tasks.Tests
{
//
// Parallel.For() testing.
// Not, for now, testing all flavors (For(int), For(long), ForEach(), Partioner ForEach()).
// Not, for now, testing all flavors (For(int), For(long), ForEach(), Partitioner ForEach()).
// Assuming that all use ParallelOptions in the same fashion.
//
@ -1028,7 +1028,7 @@ namespace System.Threading.Tasks.Tests
counter = 0;
Action a2 = delegate
{
// Return value isn't guaranteed to be lock'ed... so store it off to prevent other thread
// Return value isn't guaranteed to be locked... so store it off to prevent other thread
// from incrementing it while we check the value. Otherwise it's entirely possible to skip this entirely
// since with 2 DOP it's entirely possible for the returned value to be 1 or 2.
// the expected value leaving should always be 2 with 2 DOP though.

View File

@ -23,7 +23,7 @@ namespace System.Threading.Tasks.Tests
private ActionType _actionType; // type of actions
private Action[] _actions;
private double[] _results; // global place to store the workload results for verication
private double[] _results; // global place to store the workload results for verification
#endregion
@ -35,7 +35,7 @@ namespace System.Threading.Tasks.Tests
_actions = new Action[_count];
_results = new double[_count];
// intialize actions
// initialize actions
for (int i = 0; i < _count; i++)
{
int iCopy = i;
@ -89,7 +89,7 @@ namespace System.Threading.Tasks.Tests
#region Helper Methods
// calcuate 1 + 1/(2*2) + 1/(3*3) + ... + 1/(n*n) = Math.Pow (Math.PI, 2) / 6
// calculate 1 + 1/(2*2) + 1/(3*3) + ... + 1/(n*n) = Math.Pow (Math.PI, 2) / 6
private static double ZetaSequence(int n)
{
double result = 0;

View File

@ -33,7 +33,7 @@ namespace System.Threading.Tasks.Test
private readonly TestParameters _parameters;
private readonly ManualResetEventSlim _mreSlim;
private readonly double[] _results; // global place to store the workload result for verication
private readonly double[] _results; // global place to store the workload result for verification
// data structure used with ParallelLoopState<TLocal>
// each row is the sequence of loop "index" finished in the same thread
@ -44,7 +44,7 @@ namespace System.Threading.Tasks.Test
private long _startIndex = 0; // start index for the loop
// Hold list of actions to be perfomed
// Hold list of actions to be performed
private List<Action<long, ParallelLoopState>> _actions = new List<Action<long, ParallelLoopState>>();
// Hold list of verification

View File

@ -8,10 +8,10 @@
//
//
// Contains tests for testing the Partitioner1Chunk new Dev11 feature.
// In this partioner the chunk size is always 1
// In this partitioner the chunk size is always 1
//
// The included scenarios are:
// 1. Partitioner Corectness:
// 1. Partitioner Correctness:
// - Chunk is one
// - ParallelForEach support iteration dependencies
// 2. Enumerators are disposed in ParallelForEach usage
@ -63,7 +63,7 @@ namespace System.Threading.Tasks.Tests
{
//keep track how many times the move next of the data source was called
//it is expected as
//every call of MoveNext on partioner>GetDynamicPartions.GetEnumerator
//every call of MoveNext on partitioner>GetDynamicPartions.GetEnumerator
//to result in only one call of datasource Move Next
//there is not need to guard for concurrency issues because this scenario is single threaded
dataSourceMoveNextCalls++;
@ -182,7 +182,7 @@ namespace System.Threading.Tasks.Tests
Exception userEx = new InvalidOperationException("UserException");
//this is an enumerable that will execute user actions on move next, current and dispose
//in this case we will set it to thorw on MoveNext for specified index
//in this case we will set it to throw on MoveNext for specified index
UserActionEnumerable<int> customEnumerable = new UserActionEnumerable<int>(ds);
Action<int> moveNextUserAction = (currentElement) =>
{
@ -415,7 +415,7 @@ namespace System.Threading.Tasks.Tests
}
/// <summary>
/// Dispose the underlying Enumerator, and supresses finalization
/// Dispose the underlying Enumerator, and suppresses finalization
/// so that we will not throw.
/// </summary>
public void Dispose()

View File

@ -1,12 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
<ItemGroup>
<Project Include="System.Threading.Tasks.Parallel.Tests.csproj" />
<Project Include="System.Threading.Tasks.Parallel.Tests.csproj">
<OSGroup>Windows_NT</OSGroup>
<TestTFMs>net462</TestTFMs>
</Project>
</ItemGroup>
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.traversal.targets))\dir.traversal.targets" />
</Project>

View File

@ -1,12 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
<PropertyGroup>
<ProjectGuid>{DE29C320-2ECA-43FD-9F41-6F4F6C6BACD5}</ProjectGuid>
<AppDesignerFolder>Properties</AppDesignerFolder>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='netstandard1.5-Debug|AnyCPU'" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='netstandard1.5-Release|AnyCPU'" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'netstandard-Debug|AnyCPU'" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'netstandard-Release|AnyCPU'" />
<PropertyGroup>
<StartupObject />
</PropertyGroup>
@ -34,4 +34,4 @@
</Compile>
</ItemGroup>
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
</Project>
</Project>