Reset last_cycle to 0 if queue gets empty
This commit is contained in:
parent
8ce8b2af46
commit
73b77964ef
|
@ -2038,6 +2038,11 @@ nghttp2_session_pop_next_ob_item(nghttp2_session *session) {
|
||||||
!nghttp2_pq_empty(&session->ob_da_pq)) {
|
!nghttp2_pq_empty(&session->ob_da_pq)) {
|
||||||
item = nghttp2_pq_top(&session->ob_da_pq);
|
item = nghttp2_pq_top(&session->ob_da_pq);
|
||||||
nghttp2_pq_pop(&session->ob_da_pq);
|
nghttp2_pq_pop(&session->ob_da_pq);
|
||||||
|
|
||||||
|
if (nghttp2_pq_empty(&session->ob_da_pq)) {
|
||||||
|
session->last_cycle = 0;
|
||||||
|
}
|
||||||
|
|
||||||
item->queued = 0;
|
item->queued = 0;
|
||||||
return item;
|
return item;
|
||||||
}
|
}
|
||||||
|
@ -2158,7 +2163,10 @@ static void session_outbound_item_schedule(nghttp2_session *session,
|
||||||
|
|
||||||
/* We pretend to ignore overflow given that the value range of
|
/* We pretend to ignore overflow given that the value range of
|
||||||
item->cycle, which is uint64_t. nghttp2 won't explode even when
|
item->cycle, which is uint64_t. nghttp2 won't explode even when
|
||||||
overflow occurs, there might be some disturbance of priority. */
|
overflow occurs, there might be some disturbance of priority. We
|
||||||
|
also reset session->last_cycle to 0, when there is no DATA frame
|
||||||
|
to send (queue is empty), so the possibility of overflow is
|
||||||
|
generally very small. */
|
||||||
item->cycle = session->last_cycle + delta;
|
item->cycle = session->last_cycle + delta;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue