On Tue, Sep 1, 2015 at 5:19 PM, Eli Zaretskii <eliz@gnu.org> wrote:
> The only code path that I see that's potentially dangerous is that atimers
> appear to be executed even if input is blocked.

Yes, that's exactly what bothered me.  Not calling QUIT prevents that.

Alternatively, we could turn off atimers (by calling turn_on_atimers)
while Fcopy_sequence runs.

I think that would be a better solution. I've done a quick grep for the current atimers and at first glance they appear to be okay, but obviously that's no guarantee for the future. It might be worth thinking about block_input_and_atimers ().

I think it's safe to assume that Lisp timers are only checked if atimers are enabled. If it isn't, I think the best way forward is to write block_input_and_atimers () and lock atimers with a counter just like input is.