From patchwork Tue Jan 26 16:00:02 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [3/5] linux-user: remove signal handler before calling abort() Date: Tue, 26 Jan 2010 06:00:02 -0000 From: Riku Voipio X-Patchwork-Id: 43714 Message-Id: <1264521604-2020-4-git-send-email-riku.voipio@iki.fi> To: qemu-devel@nongnu.org Cc: Riku Voipio From: Riku Voipio Qemu may hang in host_signal_handler after qemu has done a seppuku with cpu_abort(). But at this stage we are not really interested in target process coredump anymore, so unregister host_signal_handler to die grafefully. Signed-off-by: Riku Voipio --- exec.c | 9 +++++++++ 1 files changed, 9 insertions(+), 0 deletions(-) diff --git a/exec.c b/exec.c index 71f655f..3145b83 100644 --- a/exec.c +++ b/exec.c @@ -40,6 +40,7 @@ #include "kvm.h" #if defined(CONFIG_USER_ONLY) #include +#include #endif //#define DEBUG_TB_INVALIDATE @@ -1692,6 +1693,14 @@ void cpu_abort(CPUState *env, const char *fmt, ...) } va_end(ap2); va_end(ap); +#if defined(CONFIG_USER_ONLY) + { + struct sigaction act; + sigfillset(&act.sa_mask); + act.sa_handler = SIG_DFL; + sigaction(SIGABRT, &act, NULL); + } +#endif abort(); }