On Tue, Jan 21, 2014 at 8:21 PM, Mark H Weaver <m...@netris.org> wrote: > Tom Tromey <tro...@redhat.com> writes: > >>>>>>> "Ludovic" == Ludovic Courtès <l...@gnu.org> writes: >> >> Ludovic> I guess this is another limitation of Guile’s current signal >> handling >> Ludovic> strategy, and something we should fix. >> >> FWIW I think it would be sufficient for gdb if scm_system_async_mark, or >> something like it, could be invoked from a signal handler. Then a >> SIGINT in gdb could install an async callback that later checks gdb's >> quit flag. > > As discussed on IRC, one way to accomplish this with current Guile is > as follows: establish a dedicated thread whose sole job it is to call > 'scm_system_async_mark_for_thread' as directed by messages received from > a pipe. A signal handler can then schedule asyncs by writing messages > to this pipe. > > We'll try to come up with an nicer solution at some point.
Righto, and thanks. I'll implement this as a follow-on to the current patch series. It'll be mostly just new code, and the current patch series is big enough.