public void OnTimeout(TimeoutReason reason) { // In the cases that don't log directly here, we expect the setter of the timeout to also be the input // reader, so when the read is canceled or aborted, the reader should write the appropriate log. switch (reason) { case TimeoutReason.KeepAlive: _requestProcessor.StopProcessingNextRequest(); break; case TimeoutReason.RequestHeaders: _requestProcessor.HandleRequestHeadersTimeout(); break; case TimeoutReason.ReadDataRate: _requestProcessor.HandleReadDataRateTimeout(); break; case TimeoutReason.WriteDataRate: Log.ResponseMinimumDataRateNotSatisfied(_context.ConnectionId, _http1Connection?.TraceIdentifier); Abort(new ConnectionAbortedException(CoreStrings.ConnectionTimedBecauseResponseMininumDataRateNotSatisfied)); break; case TimeoutReason.RequestBodyDrain: case TimeoutReason.TimeoutFeature: Abort(new ConnectionAbortedException(CoreStrings.ConnectionTimedOutByServer)); break; default: Debug.Assert(false, "Invalid TimeoutReason"); break; } }
public void OnTimeout(TimeoutReason reason) { // In the cases that don't log directly here, we expect the setter of the timeout to also be the input // reader, so when the read is canceled or aborted, the reader should write the appropriate log. // TODO what timeouts should we handle here? Is keep alive something we should care about? switch (reason) { case TimeoutReason.KeepAlive: SendGoAway(_highestOpenedStreamId).Preserve(); break; case TimeoutReason.TimeoutFeature: SendGoAway(_highestOpenedStreamId).Preserve(); break; case TimeoutReason.RequestHeaders: case TimeoutReason.ReadDataRate: case TimeoutReason.WriteDataRate: case TimeoutReason.RequestBodyDrain: default: Debug.Assert(false, "Invalid TimeoutReason"); break; } }
private void AssignTimeout(long ticks, TimeoutReason timeoutReason) { TimerReason = timeoutReason; // Add Heartbeat.Interval since this can be called right before the next heartbeat. Interlocked.Exchange(ref _timeoutTimestamp, Interlocked.Read(ref _lastTimestamp) + ticks + Heartbeat.Interval.Ticks); }
public void ResetTimeout(long ticks, TimeoutReason timeoutReason) { AssignTimeout(ticks, timeoutReason); }
public void SetTimeout(long ticks, TimeoutReason timeoutReason) { Debug.Assert(_timeoutTimestamp == long.MaxValue, "Concurrent timeouts are not supported."); AssignTimeout(ticks, timeoutReason); }
public void SetTimeout(long ticks, TimeoutReason timeoutReason) { }
public void OnTimeout(TimeoutReason reason) { log.Info($"OnTimeout: {reason}"); }
public void OnTimeout(TimeoutReason reason) { }
public void OnTimeout(TimeoutReason reason) { _inner.OnTimeout(reason); _http3._httpConnection.OnTimeout(reason); }
public void OnTimeout(TimeoutReason reason) { Console.WriteLine($"TransactionListener OnTimeout TimeoutReason: {reason}"); }
void RegisterAbortTimeout(IAsyncResult result, TimeoutReason reason) { this.timedOutReason = reason; TimeoutHelper.Register(result.AsyncWaitHandle, MaybeAbortCallback, this, TimeSpan.FromMilliseconds(webRequest.Timeout)); }
public void OnTimeout(TimeoutReason reason) { Console.WriteLine($"OnTimeout Result: {reason}"); }