Subject: Re: bug#30182: Update

From: Eli Zaretskii <[email-masked]>
Date: Fri, 02 Feb 2018 18:11:17 +0200

> From: Noam Postavsky <[email-masked]>
> Cc: martin rudalics <[email-masked]>,  [email-masked],  [email-masked]
> Date: Fri, 02 Feb 2018 09:14:36 -0500
> 
> > I'd love to see a C-level backtrace from that situation, because I'm
> > not really sure what exactly happens and how.
> 
> This is reproducible from
> 
>     emacs -Q -L .../w3m -l w3m -f w3m
> 
> where .../w3m is a checkout of https://github.com/ecbrown/emacs-w3m.
> Backtrace attached.  Martin's patch of #143 applied and breakpoint
> set with:
> 
>     break Fsignal if (((intptr_t)Qerror) == ((intptr_t)error_symbol))
> 
> (the breakpoint needs to be set only after w3m has started up though)

Thanks.  So Flength processes pending signals, and that causes it to
call note_mode_line_or_margin_highlight, which calls Lisp, which adds
a timer to the list.

This is less serious than what I was afraid of, and I see now that
note_mode_line_or_margin_highlight CANNOT be called from the SIGIO
handler.

So I guess just using block_input/unblock_input around Fcopy_sequence
call, as I proposed earlier, should plug this hole.

Thanks a lot for making the situation obvious.