Simply QuicSpdySession::HasActiveRequest(). CleanUpSession() method is added in gfe_quic_server_session_test to simulate the shutdown of a QuicSession similar to production procedures. gfe-relnote: protected by gfe2_reloadable_flag_quic_active_streams_never_negative. PiperOrigin-RevId: 261400867 Change-Id: I34d37cc9e1e224dd1df254ec4c2b86c79a1f7533
diff --git a/quic/core/http/quic_spdy_session.cc b/quic/core/http/quic_spdy_session.cc index d1c9d37..3c00c2b 100644 --- a/quic/core/http/quic_spdy_session.cc +++ b/quic/core/http/quic_spdy_session.cc
@@ -824,9 +824,14 @@ } bool QuicSpdySession::HasActiveRequestStreams() const { - // In the case where session is destructed by calling - // stream_map().clear(), we will have incorrect accounting here. - // TODO(renjietang): Modify destructors and make this a DCHECK. + if (GetQuicReloadableFlag(quic_active_streams_never_negative)) { + QUIC_RELOADABLE_FLAG_COUNT(quic_active_streams_never_negative); + DCHECK(static_cast<size_t>(stream_map().size()) >= + num_incoming_static_streams() + num_outgoing_static_streams()); + return stream_map().size() - num_incoming_static_streams() - + num_outgoing_static_streams() > + 0; + } if (static_cast<size_t>(stream_map().size()) > num_incoming_static_streams() + num_outgoing_static_streams()) { return stream_map().size() - num_incoming_static_streams() -