Chromium Code Reviews| Index: net/spdy/spdy_write_queue.cc |
| diff --git a/net/spdy/spdy_write_queue.cc b/net/spdy/spdy_write_queue.cc |
| index 18ddc39bf8ec28bef9e37e31025b39e5c9d46d07..e3691e20320d27ba0755d5c34b77c4112d3fd058 100644 |
| --- a/net/spdy/spdy_write_queue.cc |
| +++ b/net/spdy/spdy_write_queue.cc |
| @@ -89,6 +89,26 @@ void SpdyWriteQueue::RemovePendingWritesForStream( |
| queue->erase(out_it, queue->end()); |
| } |
| +void SpdyWriteQueue::RemovePendingWritesForStreamsAfter( |
| + SpdyStreamId last_good_stream_id) { |
| + for (int i = 0; i < NUM_PRIORITIES; ++i) { |
| + // Do the actual deletion and removal, preserving FIFO-ness. |
| + std::deque<PendingWrite>* queue = &queue_[i]; |
| + std::deque<PendingWrite>::iterator out_it = queue->begin(); |
| + for (std::deque<PendingWrite>::const_iterator it = queue->begin(); |
| + it != queue->end(); ++it) { |
| + if (it->stream && (it->stream->stream_id() > last_good_stream_id || |
| + it->stream->stream_id() == 0)) { |
|
akalin
2013/04/18 19:58:19
ah, interesting. can you add to the header comment
Ryan Hamilton
2013/04/18 21:33:46
Done.
|
| + delete it->frame_producer; |
| + } else { |
| + *out_it = *it; |
| + ++out_it; |
| + } |
| + } |
| + queue->erase(out_it, queue->end()); |
| + } |
| +} |
| + |
| void SpdyWriteQueue::Clear() { |
| for (int i = 0; i < NUM_PRIORITIES; ++i) { |
| for (std::deque<PendingWrite>::iterator it = queue_[i].begin(); |