[PATCH 0/2] Fix SIGSEGV handler and other synchronous signals

David Shea dshea at redhat.com
Fri Sep 12 20:03:23 UTC 2014


Ever noticed that the SIGSEGV handler never actually gets called? It's
because python doesn't support that, at least not when threads are in use.
signalmodule.c has this big comment up near the top:

   NOTES ON THE INTERACTION BETWEEN SIGNALS AND THREADS

   When threads are supported, we want the following semantics:

   - only the main thread can set a signal handler
   - any thread can get a signal handler
   - signals are only delivered to the main thread

   I.e. we don't support "synchronous signals" like SIGFPE (catching
   this doesn't make much sense in Python anyway) nor do we support
   signals as a means of inter-thread communication, since not all
   thread implementations support that (at least our thread library
   doesn't).

but that's ok. We can work around that.

David Shea (2):
  Remove argument handling from methods without arguments
  Fix the SIGSEGV handler

 anaconda                    |  6 +++++-
 pyanaconda/isys/__init__.py |  2 +-
 pyanaconda/isys/isys.c      | 39 +++++++++++++++++++++++++++++----------
 3 files changed, 35 insertions(+), 12 deletions(-)

-- 
2.1.0



More information about the anaconda-patches mailing list