On Fri, Jun 10, 2016 at 07:49:30PM +0200, Bram Moolenaar wrote:

> Thanks for the stack trace.  I'll make a patch to block autocommands in
> deathtrap(), that should avoid this crash.  Obviously it won't exit
> completely cleanly, but that's very difficult to avoid.

True.  Though in the case of TERM or HUP, things are definitely
recoverable, at least as compared to things like SEGV.  Still, crashing in
the middle of cleanup is probably the worst of all worlds.  :)

> It depends on where the program was when the signal was received.  E.g.,
> if it happens inside free() then any memory allocation can fail.  And
> it's difficult to flush swap files without any memory allocation.
> That's why Vim handles multiple deadly signals.

Right.  And that's why I went down the road of returning from the signal
handler to do all those messy things in the normal execution context, but
then getting out as soon as possible.

Thanks,
Danek

-- 
-- 
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/d/optout.

Raspunde prin e-mail lui