53292Re: No break checks during shell operations in GUI mode?
- Feb 7, 2009Bjorn Winckler wrote:
> 2009/2/5 Bram Moolenaar:I think we need to break out of the loop now and then to check for a
> > If I do ":!cat" then typing CTRL-C does appear to work. Perhaps it's
> > the flood of output to the screen that stops the CTRL-C check? No time
> > to investigate further right now.
> Yes, this seems to be the problem. The difference between ":!cat" and
> ":grep a *.c" is that the former produces no output whereas the latter
> does and consequently Vim gets stuck in the loop on line 4368
> (os_unix.c) starting with
> while (RealWaitForChar(fromshell_fd, 10L, NULL))
> This loop is where I added the break check since there are no other
> checks for ctrl-c here. Only when this loop exits is ui_inchar()
> called and in the case of ":grep a *.c" this loop is iterated _many_
> times (up to 60000) before breaking out to call ui_inchar() again.
> Dominique: It is strange that my patch does not fix the problem for
> you...maybe fast_breakcheck() doesn't call gui_mch_update() often
> enough on your system (although that seems unlikely judging from the
> amount of times this loop iterates as I mentioned above)? It does
> take care of the problem on my machine (Mac OS X 10.5.6, Vim 7.2
> patches 1-102, with MacVim GUI).
> Anyway, I don't know what the proper way to fix this problem is then
> seeing as it's not working for Dominique. But somehow we have to
> ensure that this problematic loop doesn't get stuck for "too long"
> (whatever metric we may use to measure that) or that we check for
> ctrl-c explicitly during the loop (which was what my patch was
> supposed to do). Any ideas?
CTRL-C. Question is: when? There is some code in place to avoid
calling ui_inchar(), because it eats typeahead.
Perhaps the "noread_cnt" variable can be extended with something that
keeps track of how long ago ui_inchar() was called. It should probably
be called every half a second to be responsive to CTRL-C.
hundred-and-one symptoms of being an internet addict:
58. You turn on your computer and turn off your wife.
/// Bram Moolenaar -- Bram@... -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
You received this message from the "vim_dev" maillist.
For more information, visit http://www.vim.org/maillist.php
- << Previous post in topic Next post in topic >>