From 14717f2a3ffbd5bb624c69fab42701e06ce05871 Mon Sep 17 00:00:00 2001 From: David Fowler Date: Fri, 15 Jul 2016 00:58:59 -0700 Subject: [PATCH] Always allocate the socket closed tcs --- .../Internal/Http/Connection.cs | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/src/Microsoft.AspNetCore.Server.Kestrel/Internal/Http/Connection.cs b/src/Microsoft.AspNetCore.Server.Kestrel/Internal/Http/Connection.cs index f2c0233744..82bff4c48e 100644 --- a/src/Microsoft.AspNetCore.Server.Kestrel/Internal/Http/Connection.cs +++ b/src/Microsoft.AspNetCore.Server.Kestrel/Internal/Http/Connection.cs @@ -35,7 +35,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Internal.Http private FilteredStreamAdapter _filteredStreamAdapter; private Task _readInputTask; - private TaskCompletionSource _socketClosedTcs; + private TaskCompletionSource _socketClosedTcs = new TaskCompletionSource(); private BufferSizeControl _bufferSizeControl; public Connection(ListenerContext context, UvStreamHandle socket) : base(context) @@ -127,13 +127,8 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Internal.Http public Task StopAsync() { - if (_socketClosedTcs == null) - { - _socketClosedTcs = new TaskCompletionSource(); - - _frame.Stop(); - _frame.SocketInput.CompleteAwaiting(); - } + _frame.Stop(); + _frame.SocketInput.CompleteAwaiting(); return _socketClosedTcs.Task; } @@ -168,7 +163,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Internal.Http SocketInput.Dispose(); } - _socketClosedTcs?.TrySetResult(null); + _socketClosedTcs.TrySetResult(null); } private void ApplyConnectionFilter()