OLD | NEW |
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 #ifndef NET_QUIC_QUIC_WRITE_BLOCKED_LIST_H_ | 5 #ifndef NET_QUIC_QUIC_WRITE_BLOCKED_LIST_H_ |
6 #define NET_QUIC_QUIC_WRITE_BLOCKED_LIST_H_ | 6 #define NET_QUIC_QUIC_WRITE_BLOCKED_LIST_H_ |
7 | 7 |
8 #include <set> | 8 #include <set> |
9 | 9 |
10 #include "net/base/net_export.h" | 10 #include "net/base/net_export.h" |
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
78 | 78 |
79 void UpdateBytesForStream(QuicStreamId stream_id, size_t bytes) { | 79 void UpdateBytesForStream(QuicStreamId stream_id, size_t bytes) { |
80 if (batch_write_stream_id_[last_priority_popped_] == stream_id) { | 80 if (batch_write_stream_id_[last_priority_popped_] == stream_id) { |
81 // If this was the last data stream popped by PopFront, update the | 81 // If this was the last data stream popped by PopFront, update the |
82 // bytes remaining in its batch write. | 82 // bytes remaining in its batch write. |
83 bytes_left_for_batch_write_[last_priority_popped_] -= bytes; | 83 bytes_left_for_batch_write_[last_priority_popped_] -= bytes; |
84 } else { | 84 } else { |
85 // If a batch write stream was set, it should only be preempted by the | 85 // If a batch write stream was set, it should only be preempted by the |
86 // crypto or headers streams. Any higher priority data stream would | 86 // crypto or headers streams. Any higher priority data stream would |
87 // *become* the new batch write stream. | 87 // *become* the new batch write stream. |
88 if (FLAGS_respect_send_alarm && | 88 if (FLAGS_quic_respect_send_alarm && |
89 FLAGS_quic_batch_writes) { | 89 FLAGS_quic_batch_writes) { |
90 DCHECK(stream_id == kCryptoStreamId || stream_id == kHeadersStreamId || | 90 // TODO(ianswettt): Determine why this DCHECK failed. |
91 batch_write_stream_id_[last_priority_popped_] == 0 || | 91 // DCHECK(stream_id == kCryptoStreamId || stream_id == kHeadersStreamId |
| |
92 bytes == 0); | 92 // batch_write_stream_id_[last_priority_popped_] == 0 || |
| 93 // bytes == 0); |
93 } | 94 } |
94 } | 95 } |
95 } | 96 } |
96 | 97 |
97 // Pushes a stream to the back of the std::list for this priority level *unles
s* it | 98 // Pushes a stream to the back of the std::list for this priority level *unles
s* it |
98 // is latched for doing batched writes in which case it goes to the front of | 99 // is latched for doing batched writes in which case it goes to the front of |
99 // the std::list for this priority level. | 100 // the std::list for this priority level. |
100 // Headers and crypto streams are special cased to always resume first. | 101 // Headers and crypto streams are special cased to always resume first. |
101 void AddStream(QuicStreamId stream_id, SpdyPriority priority) { | 102 void AddStream(QuicStreamId stream_id, SpdyPriority priority) { |
102 if (stream_id == kCryptoStreamId) { | 103 if (stream_id == kCryptoStreamId) { |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
145 bool crypto_stream_blocked_; | 146 bool crypto_stream_blocked_; |
146 bool headers_stream_blocked_; | 147 bool headers_stream_blocked_; |
147 | 148 |
148 DISALLOW_COPY_AND_ASSIGN(QuicWriteBlockedList); | 149 DISALLOW_COPY_AND_ASSIGN(QuicWriteBlockedList); |
149 }; | 150 }; |
150 | 151 |
151 } // namespace net | 152 } // namespace net |
152 | 153 |
153 | 154 |
154 #endif // NET_QUIC_QUIC_WRITE_BLOCKED_LIST_H_ | 155 #endif // NET_QUIC_QUIC_WRITE_BLOCKED_LIST_H_ |
OLD | NEW |