Mercurial > vim
diff src/testdir/test_hlsearch.vim @ 29071:b90bca860b5a v8.2.5057
patch 8.2.5057: using gettimeofday() for timeout is very inefficient
Commit: https://github.com/vim/vim/commit/6574577cacd393ab7591fc776ea060eebc939e55
Author: Paul Ollis <paul@cleversheep.org>
Date: Sun Jun 5 16:55:54 2022 +0100
patch 8.2.5057: using gettimeofday() for timeout is very inefficient
Problem: Using gettimeofday() for timeout is very inefficient.
Solution: Set a platform dependent timer. (Paul Ollis, closes https://github.com/vim/vim/issues/10505)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sun, 05 Jun 2022 18:00:08 +0200 |
parents | ff21e2962490 |
children | 32f3b86352e6 |
line wrap: on
line diff
--- a/src/testdir/test_hlsearch.vim +++ b/src/testdir/test_hlsearch.vim @@ -37,6 +37,15 @@ endfunc func Test_hlsearch_hangs() CheckFunction reltimefloat + " So, it turns out the Windows 7 implements TimerQueue timers differently + " and they can expire *before* the requested time has elapsed. So allow for + " the timeout occurring after 80 ms (5 * 16 (the typical clock tick)). + if has("win32") + let min_timeout = 0.08 + else + let min_timeout = 0.1 + endif + " This pattern takes a long time to match, it should timeout. new call setline(1, ['aaa', repeat('abc ', 1000), 'ccc']) @@ -45,7 +54,7 @@ func Test_hlsearch_hangs() let @/ = '\%#=1a*.*X\@<=b*' redraw let elapsed = reltimefloat(reltime(start)) - call assert_true(elapsed > 0.1) + call assert_true(elapsed > min_timeout) call assert_true(elapsed < 1.0) set nohlsearch redrawtime& bwipe!