mirror of
https://gitlab.isc.org/isc-projects/bind9
synced 2025-08-22 18:19:42 +00:00
Throttle the reading when writes are asynchronous
Be more aggressive when throttling the reading - when we can't send the outgoing TCP synchronously with uv_try_write(), we start throttling the reading immediately instead of waiting for the send buffers to fill up. This should not affect behaved clients that read the data from the TCP on the other end.
This commit is contained in:
parent
92a73bca2d
commit
bc3e713317
@ -1145,6 +1145,13 @@ tcp_send_direct(isc_nmsocket_t *sock, isc__nm_uvreq_t *req) {
|
||||
}
|
||||
}
|
||||
|
||||
isc_log_write(isc_lctx, ISC_LOGCATEGORY_GENERAL, ISC_LOGMODULE_NETMGR,
|
||||
ISC_LOG_DEBUG(3),
|
||||
"throttling TCP connection, the other side is not "
|
||||
"reading the data, switching to uv_write()");
|
||||
sock->reading_throttled = true;
|
||||
isc__nm_stop_reading(sock);
|
||||
|
||||
r = uv_write(&req->uv_req.write, &sock->uv_handle.stream, bufs, nbufs,
|
||||
tcp_send_cb);
|
||||
if (r < 0) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user