diff --git a/common/server_room.cpp b/common/server_room.cpp index 32953427..8ca6e997 100644 --- a/common/server_room.cpp +++ b/common/server_room.cpp @@ -84,7 +84,6 @@ Server_Game *Server_Room::createGame(const QString &description, const QString & Server_Game *newGame = new Server_Game(creator, static_cast(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); diff --git a/servatrice/src/main.cpp b/servatrice/src/main.cpp index 5feffe0a..a5ebe207 100644 --- a/servatrice/src/main.cpp +++ b/servatrice/src/main.cpp @@ -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;