From b3ab7ba1d67955748d87445cfb67412e459f23f5 Mon Sep 17 00:00:00 2001 From: Daniel Hahler Date: Mon, 26 Aug 2019 15:45:14 +0200 Subject: Revisit out_data_decide_throttle Pulse every 0.1s only. This makes `!yes` look much better (less busy). --- src/nvim/os/shell.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) (limited to 'src/nvim/os/shell.c') diff --git a/src/nvim/os/shell.c b/src/nvim/os/shell.c index 19d199f4d5..6956410401 100644 --- a/src/nvim/os/shell.c +++ b/src/nvim/os/shell.c @@ -405,8 +405,11 @@ static bool out_data_decide_throttle(size_t size) return false; } else if (!visit) { started = os_hrtime(); - } else if (visit % 20 == 0) { + } else { uint64_t since = os_hrtime() - started; + if (since < (visit * 0.1L * NS_1_SECOND)) { + return true; + } if (since > (3 * NS_1_SECOND)) { received = visit = 0; return false; @@ -415,12 +418,10 @@ static bool out_data_decide_throttle(size_t size) visit++; // Pulse "..." at the bottom of the screen. - size_t tick = (visit % 20 == 0) - ? 3 // Force all dots "..." on last visit. - : (visit % 4); - pulse_msg[0] = (tick == 0) ? ' ' : '.'; - pulse_msg[1] = (tick == 0 || 1 == tick) ? ' ' : '.'; - pulse_msg[2] = (tick == 0 || 1 == tick || 2 == tick) ? ' ' : '.'; + size_t tick = visit % 4; + pulse_msg[0] = (tick > 0) ? '.' : ' '; + pulse_msg[1] = (tick > 1) ? '.' : ' '; + pulse_msg[2] = (tick > 2) ? '.' : ' '; if (visit == 1) { msg_putchar('\n'); } -- cgit