Ozaki Kiichi wrote:
> Calling timer_stop in timer-callback causes SEGV.
>
> [repro steps]
>
> test.vim:
> ----
> function! StopTimer1(timer)
> let g:timer2 = timer_start(50, 'StopTimer2')
> " avoid bothersome maxfuncdepth error
> call timer_pause(g:timer1, 1)
> sleep 100m
> endfunction
>
> function! StopTimer2(timer)
> let g:timer3 = timer_start(50, 'StopTimer3')
> call timer_stop(g:timer1)
> endfunction
>
> function! StopTimer3(timer)
> " Do nothing
> endfunction
>
> function! TimerStart()
> let g:timer1 = timer_start(50, 'StopTimer1')
> sleep 100m
> endfunction
> ----
>
> vim -Nu NONE -S test.vim
>
> :call TimerStart()
>
> then vim aborts.
>
> [other problem]
>
> Vim hangs up when timer is firing frequently.
>
> test.vim:
> ----
> function! TimerStart()
> call timer_start(0, 'TimerCallback', {'repeat' : -1})
> endfunction
> function! TimerCallback(...)
> endfunction
> ----
>
> vim -Nu NONE -S test.vim
>
> :call TimerStart()
>
> then vim hangs up and we can't intercept by Ctrl-C.
>
> [patch]
>
> https://gist.github.com/ichizok/d6637a6d368bbf1353a35441c34039a7
>
> * evalfunc.c patch is not concerned with those problems, this modifies
> efficiency of timer_start() slightly.
Thanks, nice solution.
--
hundred-and-one symptoms of being an internet addict:
173. You keep tracking down the email addresses of all your friends
(even childhood friends).
/// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--
--
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php
---
You received this message because you are subscribed to the Google Groups
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.