diff --git a/animation-server/src/AnimationServer.cpp b/animation-server/src/AnimationServer.cpp index ede205ce90..8ae54c4963 100644 --- a/animation-server/src/AnimationServer.cpp +++ b/animation-server/src/AnimationServer.cpp @@ -804,11 +804,6 @@ AnimationServer::AnimationServer(int &argc, char **argv) : printf("PROCESSING_FPS=%d\n",PROCESSING_FPS); printf("PROCESSING_INTERVAL_USECS=%d\n",PROCESSING_INTERVAL_USECS); - if (cmdOptionExists(argc, (const char**) argv, "--quickExit")) { - qDebug() << "quick exit asked for\n"; - quit(); - } - nodeList->linkedDataCreateCallback = NULL; // do we need a callback? // Create our JurisdictionListener so we'll know where to send edit packets @@ -869,8 +864,7 @@ void AnimationServer::readPendingDatagrams() { } } -void AnimationServer::exit(int returnCode) { - qDebug() << "AS exit called!\n"; +AnimationServer::~AnimationServer() { pthread_join(animateVoxelThread, NULL); if (::jurisdictionListener) { diff --git a/animation-server/src/AnimationServer.h b/animation-server/src/AnimationServer.h index 59b247f9cf..cda5f8fb24 100644 --- a/animation-server/src/AnimationServer.h +++ b/animation-server/src/AnimationServer.h @@ -15,7 +15,7 @@ class AnimationServer : public QCoreApplication { Q_OBJECT public: AnimationServer(int &argc, char **argv); - void exit(int retCode = 0); + ~AnimationServer(); private slots: void readPendingDatagrams(); }; diff --git a/domain-server/src/DomainServer.cpp b/domain-server/src/DomainServer.cpp index bf5a7db16d..a4806ed8c7 100644 --- a/domain-server/src/DomainServer.cpp +++ b/domain-server/src/DomainServer.cpp @@ -22,6 +22,12 @@ const int RESTART_HOLD_TIME_MSECS = 5 * 1000; +void signalhandler(int sig){ + if (sig == SIGINT) { + qApp->quit(); + } +} + DomainServer* DomainServer::domainServerInstance = NULL; DomainServer::DomainServer(int argc, char* argv[]) : @@ -35,6 +41,8 @@ DomainServer::DomainServer(int argc, char* argv[]) : { DomainServer::setDomainServerInstance(this); + signal(SIGINT, signalhandler); + const char CUSTOM_PORT_OPTION[] = "-p"; const char* customPortString = getCmdOption(argc, (const char**) argv, CUSTOM_PORT_OPTION); unsigned short domainServerPort = customPortString ? atoi(customPortString) : DEFAULT_DOMAIN_SERVER_PORT; @@ -88,10 +96,8 @@ DomainServer::DomainServer(int argc, char* argv[]) : // fire a single shot timer to add static assignments back into the queue after a restart QTimer::singleShot(RESTART_HOLD_TIME_MSECS, this, SLOT(addStaticAssignmentsBackToQueueAfterRestart())); -} - -void DomainServer::exit(int retCode) { - cleanup(); + + connect(this, SIGNAL(aboutToQuit()), SLOT(cleanup())); } void DomainServer::readAvailableDatagrams() { @@ -774,8 +780,6 @@ void DomainServer::addStaticAssignmentsBackToQueueAfterRestart() { } void DomainServer::cleanup() { - qDebug() << "cleanup called!\n"; - _staticAssignmentFile.unmap(_staticAssignmentFileData); _staticAssignmentFile.close(); } \ No newline at end of file diff --git a/domain-server/src/DomainServer.h b/domain-server/src/DomainServer.h index 1ca8fb6936..e6047fed9a 100644 --- a/domain-server/src/DomainServer.h +++ b/domain-server/src/DomainServer.h @@ -50,8 +50,6 @@ private: const QUuid& checkInUUI); void addReleasedAssignmentBackToQueue(Assignment* releasedAssignment); - void cleanup(); - unsigned char* addNodeToBroadcastPacket(unsigned char* currentPosition, Node* nodeToAdd); QMutex _assignmentQueueMutex; @@ -69,6 +67,7 @@ private: private slots: void readAvailableDatagrams(); void addStaticAssignmentsBackToQueueAfterRestart(); + void cleanup(); }; #endif /* defined(__hifi__DomainServer__) */