aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/ex_docmd.c
diff options
context:
space:
mode:
authorBjörn Linse <bjorn.linse@gmail.com>2016-05-25 11:00:54 +0200
committerBjörn Linse <bjorn.linse@gmail.com>2016-05-25 11:00:54 +0200
commitc74ce334f2f7c42dcd33bc5a0d1cc02b752733f6 (patch)
tree0c1696f84e8ff072709f843726fdedcb3c6cd48d /src/nvim/ex_docmd.c
parent1e22076a6561ae2dba820ff961795ddb571940ea (diff)
parent5cc87d4dabd02167117be7a978b5c8faaa975419 (diff)
downloadrneovim-c74ce334f2f7c42dcd33bc5a0d1cc02b752733f6.tar.gz
rneovim-c74ce334f2f7c42dcd33bc5a0d1cc02b752733f6.tar.bz2
rneovim-c74ce334f2f7c42dcd33bc5a0d1cc02b752733f6.zip
Merge pull request #4624 from bfredl/timers
implement timers and process events during sleep
Diffstat (limited to 'src/nvim/ex_docmd.c')
-rw-r--r--src/nvim/ex_docmd.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/nvim/ex_docmd.c b/src/nvim/ex_docmd.c
index 870284a0f7..59962c153b 100644
--- a/src/nvim/ex_docmd.c
+++ b/src/nvim/ex_docmd.c
@@ -6989,10 +6989,10 @@ static void ex_sleep(exarg_T *eap)
*/
void do_sleep(long msec)
{
- long done;
ui_flush(); // flush before waiting
- for (done = 0; !got_int && done < msec; done += 1000L) {
- os_delay(msec - done > 1000L ? 1000L : msec - done, true);
+ for (long left = msec; !got_int && left > 0; left -= 1000L) {
+ int next = left > 1000l ? 1000 : (int)left;
+ LOOP_PROCESS_EVENTS_UNTIL(&loop, loop.events, (int)next, got_int);
os_breakcheck();
}
}