From 68d60a6e3535ea47218186f5e48ef84fb5ffa2a6 Mon Sep 17 00:00:00 2001 From: Stefan Seyfried Date: Mon, 15 Oct 2012 00:05:29 +0200 Subject: [PATCH] neutrino: avoid destructors running on exit on sh4 after all cleanup there were still (openthread related?) crashes at exit in the destructors, so finally simply disable them The crashes ranged from unaligned access (SIGBUS) to malloc errors to plain SIGSEGV. Origin commit data ------------------ Commit: https://github.com/neutrino-images/ni-neutrino/commit/0e65041fa6a811e924f05b250acb6fcd7daebc9b Author: Stefan Seyfried Date: 2012-10-15 (Mon, 15 Oct 2012) --- src/neutrino.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/neutrino.cpp b/src/neutrino.cpp index 1c53eb76c..9e8b23749 100644 --- a/src/neutrino.cpp +++ b/src/neutrino.cpp @@ -3189,8 +3189,12 @@ void CNeutrinoApp::ExitRun(const bool /*write_si*/, int retcode) printf("[neutrino] This is the end. exiting with code %d\n", retcode); Cleanup(); - //_exit(retcode); +#ifdef __sh__ + /* the sh4 gcc seems to dislike someting about openthreads... */ + _exit(retcode); +#else exit(retcode); +#endif #if HAVE_COOL_HARDWARE } #endif @@ -3759,8 +3763,11 @@ void sighandler (int signum) delete CVFD::getInstance(); delete SHTDCNT::getInstance(); stop_video(); - //_exit(0); +#ifdef __sh__ + _exit(0); +#else exit(0); +#endif default: break; }