SIGABRT handler, crash fix

This commit is contained in:
Max-Wilhelm Bruker 2011-04-18 17:50:42 +02:00
parent e6fc20114e
commit 6f3a20f53f
2 changed files with 5 additions and 2 deletions

View file

@ -84,7 +84,6 @@ Server_Game *Server_Room::createGame(const QString &description, const QString &
Server_Game *newGame = new Server_Game(creator, static_cast<Server *>(parent())->getNextGameId(), description, password, maxPlayers, gameTypes, onlyBuddies, onlyRegistered, spectatorsAllowed, spectatorsNeedPassword, spectatorsCanTalk, spectatorsSeeEverything, this);
newGame->moveToThread(thread());
newGame->setParent(this);
// This mutex needs to be unlocked by the caller.
newGame->gameMutex.lock();
games.insert(newGame->getGameId(), newGame);

View file

@ -75,7 +75,10 @@ void myMessageOutput(QtMsgType /*type*/, const char *msg)
void sigSegvHandler(int sig)
{
logger->logMessage("SIGSEGV");
if (sig == SIGSEGV)
logger->logMessage("CRASH: SIGSEGV");
else if (sig == SIGABRT)
logger->logMessage("CRASH: SIGABRT");
delete loggerThread;
raise(sig);
}
@ -114,6 +117,7 @@ int main(int argc, char *argv[])
segv.sa_flags = SA_RESETHAND;
sigemptyset(&segv.sa_mask);
sigaction(SIGSEGV, &segv, 0);
sigaction(SIGABRT, &segv, 0);
#endif
rng = new RNG_SFMT;