Always allocate the socket closed tcs
This commit is contained in:
parent
142685c0fb
commit
14717f2a3f
|
|
@ -35,7 +35,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Internal.Http
|
||||||
private FilteredStreamAdapter _filteredStreamAdapter;
|
private FilteredStreamAdapter _filteredStreamAdapter;
|
||||||
private Task _readInputTask;
|
private Task _readInputTask;
|
||||||
|
|
||||||
private TaskCompletionSource<object> _socketClosedTcs;
|
private TaskCompletionSource<object> _socketClosedTcs = new TaskCompletionSource<object>();
|
||||||
private BufferSizeControl _bufferSizeControl;
|
private BufferSizeControl _bufferSizeControl;
|
||||||
|
|
||||||
public Connection(ListenerContext context, UvStreamHandle socket) : base(context)
|
public Connection(ListenerContext context, UvStreamHandle socket) : base(context)
|
||||||
|
|
@ -127,13 +127,8 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Internal.Http
|
||||||
|
|
||||||
public Task StopAsync()
|
public Task StopAsync()
|
||||||
{
|
{
|
||||||
if (_socketClosedTcs == null)
|
_frame.Stop();
|
||||||
{
|
_frame.SocketInput.CompleteAwaiting();
|
||||||
_socketClosedTcs = new TaskCompletionSource<object>();
|
|
||||||
|
|
||||||
_frame.Stop();
|
|
||||||
_frame.SocketInput.CompleteAwaiting();
|
|
||||||
}
|
|
||||||
|
|
||||||
return _socketClosedTcs.Task;
|
return _socketClosedTcs.Task;
|
||||||
}
|
}
|
||||||
|
|
@ -168,7 +163,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Internal.Http
|
||||||
SocketInput.Dispose();
|
SocketInput.Dispose();
|
||||||
}
|
}
|
||||||
|
|
||||||
_socketClosedTcs?.TrySetResult(null);
|
_socketClosedTcs.TrySetResult(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ApplyConnectionFilter()
|
private void ApplyConnectionFilter()
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue