diff --git a/CCEngine/src/CCServer.cpp b/CCEngine/src/CCServer.cpp index 64b17cb..b4d0298 100644 --- a/CCEngine/src/CCServer.cpp +++ b/CCEngine/src/CCServer.cpp @@ -746,6 +746,7 @@ public: public: void run() { + std::lock_guard scopeGuard(m_mutex); // Create and launch a listening port std::make_shared( m_ioc, @@ -766,6 +767,7 @@ public: void shutdown() { + std::lock_guard scopeGuard(m_lock); m_ioc.stop(); for (auto& t : m_threads) { @@ -774,12 +776,18 @@ public: m_threads.clear(); } + bool isRunning() const + { + return m_ioc.stopped(); + } + void clearCache() { m_etagCache.clear(); } private: + mutable std::mutex m_lock; int m_maxThreads; std::string m_docRoot; etag_cache m_etagCache; @@ -813,3 +821,7 @@ void CCServer::run() m_impl->run(); } +bool CCServer::isRunning() const +{ + return m_impl->isRunning(); +} diff --git a/CCEngine/src/CCServer.h b/CCEngine/src/CCServer.h index f6d6fa2..90c760f 100644 --- a/CCEngine/src/CCServer.h +++ b/CCEngine/src/CCServer.h @@ -16,6 +16,7 @@ public: public: void run(); + bool isRunning() const; void shutdown(); void clearCache(); diff --git a/CCEngineLoader/CCEngineLoader.cpp b/CCEngineLoader/CCEngineLoader.cpp index a7004c2..bdd6b2a 100644 Binary files a/CCEngineLoader/CCEngineLoader.cpp and b/CCEngineLoader/CCEngineLoader.cpp differ