Subject: bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs

From: Michael Welsh Duggan <[email-masked]>
Date: Thu, 08 Apr 2021 13:51:24 -0400

Eli Zaretskii <[email-masked]> writes:

>> From: Michael Welsh Duggan <[email-masked]>
>> Cc: Michael Welsh Duggan <[email-masked]>,
>>         "[email-masked]"
>>  <[email-masked]>,
>>         "[email-masked]" <[email-masked]>
>> Date: Thu, 08 Apr 2021 13:11:34 -0400
>> 
>> I hit the breakpoint in quit.  It looks like Fnconc uses FOR_EACH_TAIL,
>> which uses FOR_EACH_TAIL_INTENAL, which calls maybe_quit.  The question
>> in my mind now is whether block/unblock_input belongs in window_list or
>> in Fnconc.
>
> IMO, the right solution is not block_input but unwind_protect.

Mayhap.  I look forward to a patch to try out.  (I'm not certain how it
should be used, myself.)

FWIW, it might be worth looking through all uses of FOR_EACH_TAIL to
find places that it is used in loops that do destructive updates, like
Fdelete, as it seems icky for C-g to leave one of these operations
partially completed.

-- 
Michael Welsh Duggan
([email-masked])