diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/account-server/main-account.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/account-server/main-account.cpp b/src/account-server/main-account.cpp index 4d5bf02a..65087ab5 100644 --- a/src/account-server/main-account.cpp +++ b/src/account-server/main-account.cpp @@ -46,6 +46,7 @@ #include "utils/stringfilter.h" #include "utils/time.h" +#include <atomic> #include <cstdlib> #include <getopt.h> #include <csignal> @@ -63,7 +64,7 @@ using utils::Logger; #define DEFAULT_STATS_FILE "manaserv.stats" #define DEFAULT_ATTRIBUTEDB_FILE "attributes.xml" -static bool running = true; /**< Determines if server keeps running */ +static std::atomic_bool running = true; /**< Determines if server keeps running */ utils::StringFilter *stringFilter; /**< Slang's Filter */ @@ -83,7 +84,7 @@ BandwidthMonitor *gBandwidth; /** Callback used when SIGQUIT signal is received. */ static void closeGracefully(int) { - running = false; + running.store(false, std::memory_order_relaxed); } /** @@ -455,7 +456,7 @@ int main(int argc, char *argv[]) // Start a thread to close the sockets and timers when running is set to false std::thread([&wsApp,processTimer,statTimer,banTimer] { - while (running) { + while (running.load(std::memory_order_relaxed)) { std::this_thread::sleep_for(std::chrono::milliseconds(100)); } |