Merge branch 'release' into dev

This commit is contained in:
Stephen Halter 2015-10-29 14:30:02 -07:00
commit fe654598f6
2 changed files with 14 additions and 2 deletions

View File

@ -31,6 +31,7 @@ namespace Microsoft.AspNet.Server.Kestrel.Http
private readonly object _onStartingSync = new Object(); private readonly object _onStartingSync = new Object();
private readonly object _onCompletedSync = new Object(); private readonly object _onCompletedSync = new Object();
private readonly FrameRequestHeaders _requestHeaders = new FrameRequestHeaders(); private readonly FrameRequestHeaders _requestHeaders = new FrameRequestHeaders();
private readonly byte[] _nullBuffer = new byte[4096];
private readonly FrameResponseHeaders _responseHeaders = new FrameResponseHeaders(); private readonly FrameResponseHeaders _responseHeaders = new FrameResponseHeaders();
private List<KeyValuePair<Func<object, Task>, object>> _onStarting; private List<KeyValuePair<Func<object, Task>, object>> _onStarting;
@ -228,8 +229,10 @@ namespace Microsoft.AspNet.Server.Kestrel.Http
await ProduceEnd(); await ProduceEnd();
// Finish reading the request body in case the app did not. while (await RequestBody.ReadAsync(_nullBuffer, 0, _nullBuffer.Length) != 0)
await RequestBody.CopyToAsync(Stream.Null); {
// Finish reading the request body in case the app did not.
}
} }
terminated = !_keepAlive; terminated = !_keepAlive;

View File

@ -30,6 +30,7 @@ namespace Microsoft.AspNet.Server.Kestrel
private Queue<CloseHandle> _closeHandleRunning = new Queue<CloseHandle>(); private Queue<CloseHandle> _closeHandleRunning = new Queue<CloseHandle>();
private object _workSync = new Object(); private object _workSync = new Object();
private bool _stopImmediate = false; private bool _stopImmediate = false;
private bool _initCompleted = false;
private ExceptionDispatchInfo _closeError; private ExceptionDispatchInfo _closeError;
private IKestrelTrace _log; private IKestrelTrace _log;
@ -58,6 +59,11 @@ namespace Microsoft.AspNet.Server.Kestrel
public void Stop(TimeSpan timeout) public void Stop(TimeSpan timeout)
{ {
if (!_initCompleted)
{
return;
}
Post(OnStop, null); Post(OnStop, null);
if (!_thread.Join((int)timeout.TotalMilliseconds)) if (!_thread.Join((int)timeout.TotalMilliseconds))
{ {
@ -195,8 +201,11 @@ namespace Microsoft.AspNet.Server.Kestrel
catch (Exception ex) catch (Exception ex)
{ {
tcs.SetException(ex); tcs.SetException(ex);
return;
} }
_initCompleted = true;
try try
{ {
var ran1 = _loop.Run(); var ran1 = _loop.Run();