Observe peer-window recovery after the deferred queue resume
This commit is contained in:
1 parent
5e436975c6
commit
4c9a32d865
1 file changed
+6
-1
@@ -590,7 +590,12 @@ static void peer_window_queries(void) {
|
||||
CHECK(queue_data_put(conn->input_queue, &fragment->ll) == 0 && conn->ack_window_timer);
|
||||
wait_sends(1); CHECK(last_sent_request && !last_sent_payload && last_sent_link);
|
||||
receive_till(last_sent_link, MAX_INFLIGHT_SIZE, 0);
|
||||
CHECK(!conn->ack_window_timer && !conn->input_queue->count && conn->input_send_q->count == 1);
|
||||
uasync_drain_immediate(ua); // queue_resume_callback выполняется через call_soon
|
||||
DEBUG_INFO(DEBUG_CATEGORY_DEBUG, "Peer window reply: next=%u till=%u query_timer=%d input=%d send=%d callback_pending=%d",
|
||||
conn->next_tx_id, conn->rx_ack_till, !!conn->ack_window_timer, conn->input_queue->count,
|
||||
conn->input_send_q->count, !!conn->input_queue->callback_suspended);
|
||||
CHECK(!conn->ack_window_timer && !conn->input_queue->count && conn->unacked_bytes == 1);
|
||||
CHECK(conn->input_send_q->count + conn->input_wait_ack->count == 1);
|
||||
teardown();
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user