aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Hahler <git@thequod.de>2019-08-26 15:45:14 +0200
committerDaniel Hahler <git@thequod.de>2019-08-30 07:12:46 +0200
commitb3ab7ba1d67955748d87445cfb67412e459f23f5 (patch)
tree3b2b91104d8ba93f8c7d60a84b1e35a523a36f72
parent7732976918d34d34d8fdb9c9829032cb43062740 (diff)
downloadrneovim-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).
-rw-r--r--src/nvim/os/shell.c15
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');
}