internal void OnDataOrHeadersReceived(Http2Connection connection) { if (_state != State.Waiting) { return; } long now = Stopwatch.GetTimestamp(); bool initial = _initialBurst > 0; if (initial || now - _pingSentTimestamp > PingIntervalInTicks) { if (initial) { _initialBurst--; } // Send a PING _pingCounter--; if (NetEventSource.Log.IsEnabled()) { connection.Trace($"[FlowControl] Sending RTT PING with payload {_pingCounter}"); } connection.LogExceptions(connection.SendPingAsync(_pingCounter, isAck: false)); _pingSentTimestamp = now; _state = State.PingSent; } }
internal void OnDataOrHeadersReceived(Http2Connection connection) { if (_state != State.Waiting) { return; } long now = Stopwatch.GetTimestamp(); bool initial = _initialBurst > 0; if (initial || now - _pingSentTimestamp > PingIntervalInTicks) { if (initial) { _initialBurst--; } // Send a PING _pingCounter--; connection.LogExceptions(connection.SendPingAsync(_pingCounter, isAck: false)); _pingSentTimestamp = now; _state = State.PingSent; } }