From de98f8c962aec15dd94e98520f471a2880e3aeb9 Mon Sep 17 00:00:00 2001 From: Pavel Krymets Date: Mon, 30 Apr 2018 12:56:55 -0700 Subject: [PATCH] Use TaskCreationOptions.RunContinuationsAsynchronously a lot --- test/Kestrel.Core.Tests/MessageBodyTests.cs | 4 ++-- test/Kestrel.FunctionalTests/ConnectionLimitTests.cs | 12 ++++++------ test/Kestrel.FunctionalTests/HttpsTests.cs | 2 +- .../MaxRequestBufferSizeTests.cs | 8 ++++---- test/Kestrel.FunctionalTests/UpgradeTests.cs | 10 +++++----- .../ListenerPrimaryTests.cs | 2 +- 6 files changed, 19 insertions(+), 19 deletions(-) diff --git a/test/Kestrel.Core.Tests/MessageBodyTests.cs b/test/Kestrel.Core.Tests/MessageBodyTests.cs index fb2d8613db..9dccccba40 100644 --- a/test/Kestrel.Core.Tests/MessageBodyTests.cs +++ b/test/Kestrel.Core.Tests/MessageBodyTests.cs @@ -405,7 +405,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Tests public async Task CopyToAsyncDoesNotCopyBlocks() { var writeCount = 0; - var writeTcs = new TaskCompletionSource<(byte[], int, int)>(); + var writeTcs = new TaskCompletionSource<(byte[], int, int)>(TaskCreationOptions.RunContinuationsAsynchronously); var mockDestination = new Mock() { CallBase = true }; mockDestination @@ -454,7 +454,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Tests Assert.Equal((segment.Array, segment.Offset, bytes.Length), await writeTcs.Task); // Verify the again when GetMemory returns the tail space of the same block. - writeTcs = new TaskCompletionSource<(byte[], int, int)>(); + writeTcs = new TaskCompletionSource<(byte[], int, int)>(TaskCreationOptions.RunContinuationsAsynchronously); bytes = Encoding.ASCII.GetBytes("World!"); buffer = http1Connection.RequestBodyPipe.Writer.GetMemory(2048); Assert.True(MemoryMarshal.TryGetArray(buffer, out segment)); diff --git a/test/Kestrel.FunctionalTests/ConnectionLimitTests.cs b/test/Kestrel.FunctionalTests/ConnectionLimitTests.cs index 8462050e36..3aa1ad90f5 100644 --- a/test/Kestrel.FunctionalTests/ConnectionLimitTests.cs +++ b/test/Kestrel.FunctionalTests/ConnectionLimitTests.cs @@ -22,9 +22,9 @@ namespace Microsoft.AspNetCore.Server.Kestrel.FunctionalTests [Fact] public async Task ResetsCountWhenConnectionClosed() { - var requestTcs = new TaskCompletionSource(); - var releasedTcs = new TaskCompletionSource(); - var lockedTcs = new TaskCompletionSource(); + var requestTcs = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); + var releasedTcs = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); + var lockedTcs = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); var counter = new EventRaisingResourceCounter(ResourceCounter.Quota(1)); counter.OnLock += (s, e) => lockedTcs.TrySetResult(e); counter.OnRelease += (s, e) => releasedTcs.TrySetResult(null); @@ -95,7 +95,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.FunctionalTests public async Task RejectsConnectionsWhenLimitReached() { const int max = 10; - var requestTcs = new TaskCompletionSource(); + var requestTcs = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); using (var server = CreateServerWithMaxConnections(async context => { @@ -140,8 +140,8 @@ namespace Microsoft.AspNetCore.Server.Kestrel.FunctionalTests const int count = 100; var opened = 0; var closed = 0; - var openedTcs = new TaskCompletionSource(); - var closedTcs = new TaskCompletionSource(); + var openedTcs = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); + var closedTcs = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); var counter = new EventRaisingResourceCounter(ResourceCounter.Quota(uint.MaxValue)); diff --git a/test/Kestrel.FunctionalTests/HttpsTests.cs b/test/Kestrel.FunctionalTests/HttpsTests.cs index eda9cbb5e6..24cc86ef3a 100644 --- a/test/Kestrel.FunctionalTests/HttpsTests.cs +++ b/test/Kestrel.FunctionalTests/HttpsTests.cs @@ -244,7 +244,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.FunctionalTests [Fact] public async Task DoesNotThrowObjectDisposedExceptionFromWriteAsyncAfterConnectionIsAborted() { - var tcs = new TaskCompletionSource(); + var tcs = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); var loggerProvider = new HandshakeErrorLoggerProvider(); LoggerFactory.AddProvider(loggerProvider); var hostBuilder = TransportSelector.GetWebHostBuilder() diff --git a/test/Kestrel.FunctionalTests/MaxRequestBufferSizeTests.cs b/test/Kestrel.FunctionalTests/MaxRequestBufferSizeTests.cs index de3254e5da..94495234e5 100644 --- a/test/Kestrel.FunctionalTests/MaxRequestBufferSizeTests.cs +++ b/test/Kestrel.FunctionalTests/MaxRequestBufferSizeTests.cs @@ -87,8 +87,8 @@ namespace Microsoft.AspNetCore.Server.Kestrel.FunctionalTests var bytesWrittenPollingInterval = TimeSpan.FromMilliseconds(bytesWrittenTimeout.TotalMilliseconds / 10); var maxSendSize = 4096; - var startReadingRequestBody = new TaskCompletionSource(); - var clientFinishedSendingRequestBody = new TaskCompletionSource(); + var startReadingRequestBody = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); + var clientFinishedSendingRequestBody = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); var lastBytesWritten = DateTime.MaxValue; var memoryPoolFactory = new DiagnosticMemoryPoolFactory(allowLateReturn: true); @@ -183,8 +183,8 @@ namespace Microsoft.AspNetCore.Server.Kestrel.FunctionalTests var bytesWrittenPollingInterval = TimeSpan.FromMilliseconds(bytesWrittenTimeout.TotalMilliseconds / 10); var maxSendSize = 4096; - var startReadingRequestBody = new TaskCompletionSource(); - var clientFinishedSendingRequestBody = new TaskCompletionSource(); + var startReadingRequestBody = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); + var clientFinishedSendingRequestBody = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); var lastBytesWritten = DateTime.MaxValue; var memoryPoolFactory = new DiagnosticMemoryPoolFactory(allowLateReturn: true); diff --git a/test/Kestrel.FunctionalTests/UpgradeTests.cs b/test/Kestrel.FunctionalTests/UpgradeTests.cs index 5d89707335..8ff867966d 100644 --- a/test/Kestrel.FunctionalTests/UpgradeTests.cs +++ b/test/Kestrel.FunctionalTests/UpgradeTests.cs @@ -19,7 +19,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.FunctionalTests [Fact] public async Task ResponseThrowsAfterUpgrade() { - var upgrade = new TaskCompletionSource(); + var upgrade = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); using (var server = new TestServer(async context => { var feature = context.Features.Get(); @@ -58,7 +58,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.FunctionalTests const string send = "Custom protocol send"; const string recv = "Custom protocol recv"; - var upgrade = new TaskCompletionSource(); + var upgrade = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); using (var server = new TestServer(async context => { try @@ -109,7 +109,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.FunctionalTests [Fact] public async Task UpgradeCannotBeCalledMultipleTimes() { - var upgradeTcs = new TaskCompletionSource(); + var upgradeTcs = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); using (var server = new TestServer(async context => { var feature = context.Features.Get(); @@ -217,7 +217,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.FunctionalTests [Fact] public async Task ThrowsWhenUpgradingNonUpgradableRequest() { - var upgradeTcs = new TaskCompletionSource(); + var upgradeTcs = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); using (var server = new TestServer(async context => { var feature = context.Features.Get(); @@ -251,7 +251,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.FunctionalTests public async Task RejectsUpgradeWhenLimitReached() { const int limit = 10; - var upgradeTcs = new TaskCompletionSource(); + var upgradeTcs = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); var serviceContext = new TestServiceContext(LoggerFactory); serviceContext.ConnectionManager = new HttpConnectionManager(serviceContext.Log, ResourceCounter.Quota(limit)); diff --git a/test/Kestrel.Transport.Libuv.Tests/ListenerPrimaryTests.cs b/test/Kestrel.Transport.Libuv.Tests/ListenerPrimaryTests.cs index fa4198ccb4..2d906fc2cf 100644 --- a/test/Kestrel.Transport.Libuv.Tests/ListenerPrimaryTests.cs +++ b/test/Kestrel.Transport.Libuv.Tests/ListenerPrimaryTests.cs @@ -140,7 +140,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.Tests Assert.Equal("Primary", await HttpClientSlim.GetStringAsync(address)); // Create a pipe connection and keep it open without sending any data - var connectTcs = new TaskCompletionSource(); + var connectTcs = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); var connectionTrace = new LibuvTrace(new TestApplicationErrorLogger()); var pipe = new UvPipeHandle(connectionTrace);