mirror of
https://github.com/vim/vim.git
synced 2025-10-08 06:04:08 -04:00
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 #10505)
This commit is contained in:
committed by
Bram Moolenaar
parent
1d97db3d98
commit
6574577cac
@@ -527,6 +527,15 @@ func Test_syntax_hangs()
|
||||
CheckFunction reltimefloat
|
||||
CheckFeature syntax
|
||||
|
||||
" 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'])
|
||||
@@ -535,7 +544,7 @@ func Test_syntax_hangs()
|
||||
syn match Error /\%#=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)
|
||||
|
||||
" second time syntax HL is disabled
|
||||
@@ -549,7 +558,7 @@ func Test_syntax_hangs()
|
||||
exe "normal \<C-L>"
|
||||
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 redrawtime&
|
||||
@@ -642,7 +651,7 @@ func Test_syntax_c()
|
||||
\ "\tNote: asdf",
|
||||
\ '}',
|
||||
\ ], 'Xtest.c')
|
||||
|
||||
|
||||
" This makes the default for 'background' use "dark", check that the
|
||||
" response to t_RB corrects it to "light".
|
||||
let $COLORFGBG = '15;0'
|
||||
|
Reference in New Issue
Block a user