From cb284b9d5813a86d83b3f19c62ffbed00dfea4e3 Mon Sep 17 00:00:00 2001 From: Stephen Halter Date: Mon, 23 May 2016 20:38:51 -0700 Subject: [PATCH] Fix race that would allow GetDateHeaderValues to return null --- .../Http/DateHeaderValueManager.cs | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/src/Microsoft.AspNetCore.Server.Kestrel/Http/DateHeaderValueManager.cs b/src/Microsoft.AspNetCore.Server.Kestrel/Http/DateHeaderValueManager.cs index d7022ab2dd..87a2e60de3 100644 --- a/src/Microsoft.AspNetCore.Server.Kestrel/Http/DateHeaderValueManager.cs +++ b/src/Microsoft.AspNetCore.Server.Kestrel/Http/DateHeaderValueManager.cs @@ -58,9 +58,11 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Http /// The value in string and byte[] format. public DateHeaderValues GetDateHeaderValues() { - if (!_hadRequestsSinceLastTimerTick) + _hadRequestsSinceLastTimerTick = !_isDisposed; + + if (!_timerIsRunning) { - PrepareDateValues(); + StartTimer(); } return _dateValues; @@ -151,18 +153,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Http } } - /// - /// Starts the timer if it's turned off, or sets the datevalues to the current time if disposed. - /// - private void PrepareDateValues() - { - _hadRequestsSinceLastTimerTick = !_isDisposed; - if (!_timerIsRunning) - { - StartTimer(); - } - } - /// /// Sets date values from a provided ticks value ///