Mercurial > vim
diff src/misc2.c @ 10406:42911b233245 v8.0.0097
commit https://github.com/vim/vim/commit/833eb1d752426689051bf2001083359899536939
Author: Bram Moolenaar <Bram@vim.org>
Date: Thu Nov 24 17:22:50 2016 +0100
patch 8.0.0097
Problem: When a channel callback consumes a lot of time Vim becomes
unresponsive. (skywind)
Solution: Bail out of checking channel readahead after 100 msec.
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Thu, 24 Nov 2016 17:30:04 +0100 |
parents | 66f1b5bf3fa6 |
children | 56cb9538386c |
line wrap: on
line diff
--- a/src/misc2.c +++ b/src/misc2.c @@ -6263,3 +6263,34 @@ parse_queued_messages(void) # endif } #endif + +#ifdef ELAPSED_TIMEVAL /* proto is defined in vim.h */ +/* + * Return time in msec since "start_tv". + */ + long +elapsed(struct timeval *start_tv) +{ + struct timeval now_tv; + + gettimeofday(&now_tv, NULL); + return (now_tv.tv_sec - start_tv->tv_sec) * 1000L + + (now_tv.tv_usec - start_tv->tv_usec) / 1000L; +} +#endif + +#ifdef ELAPSED_TICKCOUNT +/* + * Return time in msec since "start_tick". + */ + long +elapsed(DWORD start_tick) +{ + DWORD now = GetTickCount(); + + if (now < start_tick) + /* overflow */ + return (long)now; + return (long)now - (long)start_tick; +} +#endif