let $LANG = 'C' set nocompatible set rtp^=C:/work/vim/denops.vim set rtp^=C:/work/vim/ddu.vim set rtp^=C:/work/vim/ddu-ui-ff set rtp^=C:/work/vim/ddu-kind-word set rtp^=C:/work/vim/ddu-source-action set rtp^=C:/work/vim/ddu-source-callbackfreeze call ddu#custom#patch_global(#{ ui: 'ff' }) augroup my-ddu-ff autocmd! autocmd FileType ddu-ff call SetupDduFF() augroup END function! SetupDduFF() abort nnoremap a call ddu#ui#do_action('chooseAction') nnoremap q call ddu#ui#do_action('quit') endfunction function! Test() abort " Start source-callbackfreeze and ui-ff is shown. call ddu#start(#{ sources: [#{ name: 'callbackfreeze' }] }) " Press 'a' in ui-ff and source-acition is shown. call timer_start(2000, {_ -> feedkeys('a')}) " Press 'q' in ui-ff and source-acition is quit. " Then source-callbackfreeze shows again and refresh data. " But refresh process deadlocks and Vim freezes. call timer_start(4000, {_ -> feedkeys('q')}) " The error is caused by source-callbackfreeze timeout. endfunction