Handle Shutdowns
Server Rename
This commit is contained in:
25
main.cpp
25
main.cpp
@@ -1,5 +1,7 @@
|
||||
#include "stdafx.h"
|
||||
|
||||
#include <atomic>
|
||||
#include <csignal>
|
||||
#include <winsock2.h>
|
||||
|
||||
#include "logging.h"
|
||||
@@ -8,14 +10,22 @@
|
||||
#include "Lobby Server/LobbyServer.h"
|
||||
#include "Discovery Server/DiscoveryServer.h"
|
||||
|
||||
std::atomic< bool > g_isRunning( true );
|
||||
|
||||
static void SignalHandler( int signal )
|
||||
{
|
||||
if( signal == SIGINT || signal == SIGTERM )
|
||||
{
|
||||
g_isRunning = false;
|
||||
}
|
||||
}
|
||||
|
||||
static void ShowStartup()
|
||||
{
|
||||
printf
|
||||
(
|
||||
"------------------------------------------------------\n"
|
||||
"Norrath Server Build Version %s\n"
|
||||
"Champions Reborn | Server Build Version %s\n"
|
||||
"------------------------------------------------------\n\n",
|
||||
__DATE__
|
||||
);
|
||||
@@ -39,14 +49,17 @@ int main()
|
||||
{
|
||||
ShowStartup();
|
||||
|
||||
std::signal( SIGINT, SignalHandler );
|
||||
std::signal( SIGTERM, SignalHandler );
|
||||
|
||||
Log::Info( "Server Start..." );
|
||||
|
||||
if( !NetworkStartup() )
|
||||
{
|
||||
Log::Error( "Could not initialize network." );
|
||||
return 0;
|
||||
}
|
||||
|
||||
Log::Info( "Server Start..." );
|
||||
|
||||
if( !Config::Load( "config.ini" ) )
|
||||
{
|
||||
Log::Error( "Failed to load configuration file." );
|
||||
@@ -61,7 +74,7 @@ int main()
|
||||
|
||||
auto &database = Database::Get();
|
||||
|
||||
while( true )
|
||||
while( g_isRunning )
|
||||
{
|
||||
if( !lobby_server.isRunning() )
|
||||
{
|
||||
@@ -75,9 +88,13 @@ int main()
|
||||
break;
|
||||
}
|
||||
|
||||
database.Process();
|
||||
|
||||
std::this_thread::sleep_for( std::chrono::milliseconds( 250 ) );
|
||||
}
|
||||
|
||||
Log::Info( "Shutting down servers..." );
|
||||
|
||||
lobby_server.Stop();
|
||||
discovery_server.Stop();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user