diff --git a/src/Microsoft.AspNet.Server.Kestrel/Infrastructure/KestrelThread.cs b/src/Microsoft.AspNet.Server.Kestrel/Infrastructure/KestrelThread.cs index 6c26ec71b1..85a4b50621 100644 --- a/src/Microsoft.AspNet.Server.Kestrel/Infrastructure/KestrelThread.cs +++ b/src/Microsoft.AspNet.Server.Kestrel/Infrastructure/KestrelThread.cs @@ -30,6 +30,7 @@ namespace Microsoft.AspNet.Server.Kestrel private Queue _closeHandleRunning = new Queue(); private object _workSync = new Object(); private bool _stopImmediate = false; + private bool _initCompleted = false; private ExceptionDispatchInfo _closeError; private IKestrelTrace _log; @@ -58,6 +59,11 @@ namespace Microsoft.AspNet.Server.Kestrel public void Stop(TimeSpan timeout) { + if (!_initCompleted) + { + return; + } + Post(OnStop, null); if (!_thread.Join((int)timeout.TotalMilliseconds)) { @@ -195,8 +201,11 @@ namespace Microsoft.AspNet.Server.Kestrel catch (Exception ex) { tcs.SetException(ex); + return; } + _initCompleted = true; + try { var ran1 = _loop.Run();