diff options
author | Daniel Hahler <git@thequod.de> | 2019-08-26 15:45:14 +0200 |
---|---|---|
committer | Daniel Hahler <git@thequod.de> | 2019-08-30 07:12:46 +0200 |
commit | b3ab7ba1d67955748d87445cfb67412e459f23f5 (patch) | |
tree | 3b2b91104d8ba93f8c7d60a84b1e35a523a36f72 /src | |
parent | 7732976918d34d34d8fdb9c9829032cb43062740 (diff) | |
download | rneovim-b3ab7ba1d67955748d87445cfb67412e459f23f5.tar.gz rneovim-b3ab7ba1d67955748d87445cfb67412e459f23f5.tar.bz2 rneovim-b3ab7ba1d67955748d87445cfb67412e459f23f5.zip |
Revisit out_data_decide_throttle
Pulse every 0.1s only.
This makes `!yes` look much better (less busy).
Diffstat (limited to 'src')
-rw-r--r-- | src/nvim/os/shell.c | 15 |
1 files changed, 8 insertions, 7 deletions
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'); } |