From 1722150ee99999079e5d7c7d4565102e25e617a2 Mon Sep 17 00:00:00 2001 From: Stephen Halter Date: Wed, 28 Oct 2015 16:18:51 -0700 Subject: [PATCH] Do nothing in KestrelThread.Stop if libuv fails to load This prevents DllNotFoundExceptions from being masked by NullReferenceExceptions --- .../Infrastructure/KestrelThread.cs | 9 +++++++++ 1 file changed, 9 insertions(+) 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();