Hi all,

In https://github.com/leitzler/govim (master branch) Pontus is adding
support to govim for signs that correspond to quickfix entries.

This is done by calling sign_place/sign_unplace as required to get the
signs for a window in the correct state.

If there are lots of errors in a file, then there can be a large
number of calls to sign_place/sign_unplace made by govim in rapid
succession.

(Incidentally, it would be great if there was a “batch” method to set
the signs for a buffer, akin to setqflist for signs in a buffer)

However, on what is a relatively slow machine, @leitzler is seeing Vim
stall when handling calls from govim to sign_place:

https://gist.github.com/myitcv/f8579a20ce327d61c550c85df71ea4a2

Notice the ~13 second gap between the call to sign_place:

1.102629 RECV on 0(sock):
'[0,[36,"call","sign_place",0,"govim","govimerr",1,{"lnum":10}]]

and the response:

14.247893 SEND on 0(sock):
'[38,["function","function:GOVIM_internal_SetUserBusy",[1]]]
'
14.248988 on 0: Blocking read JSON for id 38
14.249019 : looking for messages on channels
14.249025 on 0: Getting JSON message 0
14.249028 on 0: Invoking channel callback <SNR>12_define
14.249201 SEND on 0(sock): '[39,["callback",36,["",7]]]

Indeed, the response only gets sent after 13 seconds because of a
cursor movement, which as you can see is also handled by a
channel-based function. That is to say a cursor movement (which
triggers a call to a channel-based plugin function) appears to "fix"
things - a few more function calls are handled, but then things
"stall" again. i.e. not all the sign_place calls have been completed.

I realise this is all rather vague (and indeed it would be somewhat
moot if we had a batch function for setting signs for a buffer), but
is there anything that could be causing Vim to stall like this?

Vim v8.1.1512.

Thanks in advance for any suggestions/pointers,


Paul

-- 
-- 
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].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/vim_dev/CACoUkn4p6-Mg49fw%3DdZ0V%2B%2Bp2BH_OFxt2jUpg66Rw-gEmU_Fkw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Raspunde prin e-mail lui