Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(192)

Side by Side Diff: net/quic/core/quic_client_session_base.cc

Issue 2446893003: Make Quic client more memory efficient. Protected by --quic_headers_stream_release_sequencer_buffer. (Closed)
Patch Set: Remove NOLINT Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "net/quic/core/quic_client_session_base.h" 5 #include "net/quic/core/quic_client_session_base.h"
6 6
7 #include "net/quic/core/quic_client_promised_info.h" 7 #include "net/quic/core/quic_client_promised_info.h"
8 #include "net/quic/core/quic_flags.h" 8 #include "net/quic/core/quic_flags.h"
9 #include "net/quic/core/spdy_utils.h" 9 #include "net/quic/core/spdy_utils.h"
10 10
(...skipping 170 matching lines...) Expand 10 before | Expand all | Expand 10 after
181 return static_cast<QuicSpdyStream*>(it->second.get()); 181 return static_cast<QuicSpdyStream*>(it->second.get());
182 } 182 }
183 return nullptr; 183 return nullptr;
184 } 184 }
185 185
186 void QuicClientSessionBase::DeletePromised(QuicClientPromisedInfo* promised) { 186 void QuicClientSessionBase::DeletePromised(QuicClientPromisedInfo* promised) {
187 push_promise_index_->promised_by_url()->erase(promised->url()); 187 push_promise_index_->promised_by_url()->erase(promised->url());
188 // Since promised_by_id_ contains the unique_ptr, this will destroy 188 // Since promised_by_id_ contains the unique_ptr, this will destroy
189 // promised. 189 // promised.
190 promised_by_id_.erase(promised->id()); 190 promised_by_id_.erase(promised->id());
191 headers_stream()->MaybeReleaseSequencerBuffer();
191 } 192 }
192 193
193 void QuicClientSessionBase::OnPushStreamTimedOut(QuicStreamId stream_id) {} 194 void QuicClientSessionBase::OnPushStreamTimedOut(QuicStreamId stream_id) {}
194 195
195 void QuicClientSessionBase::ResetPromised(QuicStreamId id, 196 void QuicClientSessionBase::ResetPromised(QuicStreamId id,
196 QuicRstStreamErrorCode error_code) { 197 QuicRstStreamErrorCode error_code) {
197 SendRstStream(id, error_code, 0); 198 SendRstStream(id, error_code, 0);
198 if (!IsOpenStream(id)) { 199 if (!IsOpenStream(id)) {
199 MaybeIncreaseLargestPeerStreamId(id); 200 MaybeIncreaseLargestPeerStreamId(id);
200 InsertLocallyClosedStreamsHighestOffset(id, 0); 201 InsertLocallyClosedStreamsHighestOffset(id, 0);
201 } 202 }
202 } 203 }
203 204
205 void QuicClientSessionBase::CloseStreamInner(QuicStreamId stream_id,
206 bool locally_reset) {
207 QuicSpdySession::CloseStreamInner(stream_id, locally_reset);
208 headers_stream()->MaybeReleaseSequencerBuffer();
209 }
210
211 bool QuicClientSessionBase::ShouldReleaseHeadersStreamSequencerBuffer() {
212 return num_active_requests() == 0 && promised_by_id_.empty();
213 }
214
204 } // namespace net 215 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698