Mercurial > dovecot > core-2.2
changeset 20475:591863def76d
login-proxy: cork+uncork in flush callbacks
Potentially reduces latency at the end of a larger data transfer.
author | Timo Sirainen <timo.sirainen@dovecot.fi> |
---|---|
date | Fri, 01 Jul 2016 02:49:32 +0300 |
parents | 3f63a4e80fe1 |
children | 35fce9a2bdfd |
files | src/login-common/login-proxy.c |
diffstat | 1 files changed, 4 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/login-common/login-proxy.c Fri Jul 01 01:11:02 2016 +0300 +++ b/src/login-common/login-proxy.c Fri Jul 01 02:49:32 2016 +0300 @@ -197,10 +197,12 @@ static int server_output(struct login_proxy *proxy) { proxy->last_io = ioloop_time; + o_stream_cork(proxy->server_output); if (o_stream_flush(proxy->server_output) < 0) { login_proxy_free_ostream(&proxy, proxy->server_output, TRUE); return 1; } + o_stream_uncork(proxy->server_output); if (proxy->client_io == NULL && o_stream_get_buffer_used_size(proxy->server_output) < @@ -216,10 +218,12 @@ static int proxy_client_output(struct login_proxy *proxy) { proxy->last_io = ioloop_time; + o_stream_cork(proxy->client_output); if (o_stream_flush(proxy->client_output) < 0) { login_proxy_free_ostream(&proxy, proxy->client_output, FALSE); return 1; } + o_stream_uncork(proxy->client_output); if (proxy->server_io == NULL && o_stream_get_buffer_used_size(proxy->client_output) <