[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#11080: 24.0.94; Assertion failure in signal handler

From: Eli Zaretskii
Subject: bug#11080: 24.0.94; Assertion failure in signal handler
Date: Sat, 24 Mar 2012 11:23:31 +0200

> From: Andreas Schwab <address@hidden>
> Date: Sat, 24 Mar 2012 09:39:46 +0100
> > eval.c:3403: Emacs fatal error: assertion failed: !handling_signal
> I think handling_signal should only be incremented in XTread_socket if
> !SYNC_INPUT.  With SYNC_INPUT (which is the default) the SIGIO handler
> doesn't actually call read_avail_input.

Perhaps we should turn the table and ask why do we even have that
eassert inside record_unwind_protect?

The comment to handling_signal says:

  /* Set to non-zero while processing X events.  Checked in Feval to
     make sure the Lisp interpreter isn't called from a signal handler,
     which is unsafe because the interpreter isn't reentrant.  */

But record_unwind_protect is called from any number of places that
have nothing to do with the Lisp interpreter.  Like the one which
triggered this bug, for example.  This assertion makes all of them
potential source of aborts.  If indeed only re-entering Lisp is the
issue here, then is record_unwind_protect really the right place for
making sure we aren't?

reply via email to

[Prev in Thread] Current Thread [Next in Thread]