aboutsummaryrefslogtreecommitdiff
path: root/src/zenserver/zenserver.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/zenserver/zenserver.cpp')
-rw-r--r--src/zenserver/zenserver.cpp56
1 files changed, 36 insertions, 20 deletions
diff --git a/src/zenserver/zenserver.cpp b/src/zenserver/zenserver.cpp
index 1f37e336f..921e3038d 100644
--- a/src/zenserver/zenserver.cpp
+++ b/src/zenserver/zenserver.cpp
@@ -226,14 +226,7 @@ namespace utils {
class ZenServer : public IHttpStatusProvider
{
public:
- ~ZenServer()
- {
- m_IoContext.stop();
- if (m_IoRunner.joinable())
- {
- m_IoRunner.join();
- }
- }
+ ~ZenServer() {}
int Initialize(const ZenServerOptions& ServerOptions, ZenServerState::ZenServerEntry* ServerEntry)
{
@@ -503,18 +496,7 @@ public:
ZEN_INFO(ZEN_APP_NAME " exiting");
- m_IoContext.stop();
- if (m_IoRunner.joinable())
- {
- m_IoRunner.join();
- }
-
Flush();
-
- if (m_JobQueue)
- {
- m_JobQueue->Stop();
- }
}
void RequestExit(int ExitCode)
@@ -531,11 +513,45 @@ public:
ZEN_INFO(ZEN_APP_NAME " cleaning up");
try
{
- m_GcScheduler.Shutdown();
+ m_IoContext.stop();
+ if (m_IoRunner.joinable())
+ {
+ m_IoRunner.join();
+ }
+
if (m_Http)
{
m_Http->Close();
}
+ if (m_JobQueue)
+ {
+ m_JobQueue->Stop();
+ }
+
+ m_GcScheduler.Shutdown();
+ m_AdminService.reset();
+ m_VfsService.reset();
+ m_ObjStoreService.reset();
+ m_FrontendService.reset();
+
+ m_StructuredCacheService.reset();
+ m_UpstreamService.reset();
+ m_UpstreamCache.reset();
+ m_CacheStore = {};
+
+#if ZEN_WITH_COMPUTE_SERVICES
+ m_HttpFunctionService.reset();
+#endif // ZEN_WITH_COMPUTE_SERVICES
+
+ m_HttpProjectService.reset();
+ m_ProjectStore = {};
+ m_CidService.reset();
+ m_CidStore.reset();
+ m_AuthService.reset();
+ m_AuthMgr.reset();
+ m_WebSocket.reset();
+ m_Http = {};
+ m_JobQueue.reset();
}
catch (std::exception& Ex)
{