The discussion "Asynchronous functions (settimeout, setinterval, and cancelinterval)" reminded me of some past discussion on interrupting a looping python. I don't remember the details; my recollection is that vim checks the input character (rather than catching the signal) and if it is the interrupt character then the running vim operation is stopped. If there is a looping python, then vim's main loop can not process the input character queue and there is no way to notify python to stop. There may also be a vim versus gvim issue.

It seems that if the SIGINT is always caught/handled and only used to set a flag such as: interrupt_pending = TRUE, then vim's main loop could do something like

    if(interrupt_pending == TRUE) {
        interrupt_pending = FALSE;
        /* do vim's process interrupt  stuff */
    }

which should preserve existing behavior by doing the interrupt handling in the main loop.

Then for handling the python situation, vim's interrupt processing would have to invoke something in the python interface that in turn invokes PyErr_SetInterrupt() if python is running.

I'm not familiar with any of this code (vim or python interface) but I wanted to put this out so I could drop it from my mental list.

-ernie

--
--
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/groups/opt_out.

Raspunde prin e-mail lui