Browse Source

inflight fix

bbr
Evgeny 4 months ago
parent
commit
7c840c8cfd
  1. 2
      src/etcp.c
  2. 10
      src/etcp_connections.c

2
src/etcp.c

@ -616,7 +616,7 @@ void etcp_conn_on_inflight_lim_changed(struct ETCP_CONN* etcp) {
uint32_t sum = 0;
for (struct ETCP_LINK* tl = etcp->links; tl; tl = tl->next) sum += tl->inflight_lim_bytes;
etcp->optimal_inflight = sum;
input_queue_try_resume(etcp);
// input_queue_try_resume(etcp);
}
void etcp_stats(struct ETCP_CONN* etcp) {

10
src/etcp_connections.c

@ -852,13 +852,13 @@ void etcp_link_update_inflight_lim(struct ETCP_LINK* link, uint32_t new_lim) {
uint32_t old = link->inflight_lim_bytes;
link->inflight_lim_bytes = new_lim;
if (old != new_lim && link->inflight_bytes < new_lim && link->send_blocked_inflight) {
if (link->inflight_bytes < new_lim && link->send_blocked_inflight) {// разблокируем линк
DEBUG_DEBUG(DEBUG_CATEGORY_ETCP, "[%s] unblocking link %p (inflight_lim %u -> %u)", link->etcp->log_name, link, old, new_lim);
etcp_conn_on_inflight_lim_changed(link->etcp);// сперва обновим inflight в etcp
link->send_blocked_inflight = 0;
loadbalancer_link_ready(link);
DEBUG_DEBUG(DEBUG_CATEGORY_ETCP, "[%s] unblocked link %p (inflight_lim %u -> %u)", link->etcp->log_name, link, old, new_lim);
}
if (!link->shaper_timer) loadbalancer_link_ready(link);// потом вызовем ready -> разблок
} else etcp_conn_on_inflight_lim_changed(link->etcp);//
etcp_conn_on_inflight_lim_changed(link->etcp);
}
void etcp_link_close(struct ETCP_LINK* link) {

Loading…
Cancel
Save