From 6d8e796932e8e2321f62ad40821bcde7da991a2e Mon Sep 17 00:00:00 2001 From: Peter Johnson Date: Sat, 12 Sep 2015 21:44:51 -0700 Subject: [PATCH] Disable logging on static instance destruction. This avoids possible deadlocks on exit when a logger callback exists. --- src/Dispatcher.cpp | 1 + src/RpcServer.cpp | 1 + src/Storage.cpp | 1 + 3 files changed, 3 insertions(+) diff --git a/src/Dispatcher.cpp b/src/Dispatcher.cpp index 4a49c49ba6..409b857b17 100644 --- a/src/Dispatcher.cpp +++ b/src/Dispatcher.cpp @@ -43,6 +43,7 @@ DispatcherBase::DispatcherBase(Storage& storage, Notifier& notifier) } DispatcherBase::~DispatcherBase() { + Logger::GetInstance().SetLogger(nullptr); Stop(); } diff --git a/src/RpcServer.cpp b/src/RpcServer.cpp index 3b5fa510b0..654cb61765 100644 --- a/src/RpcServer.cpp +++ b/src/RpcServer.cpp @@ -19,6 +19,7 @@ RpcServer::RpcServer() { } RpcServer::~RpcServer() { + Logger::GetInstance().SetLogger(nullptr); Stop(); m_terminating = true; m_poll_cond.notify_all(); diff --git a/src/Storage.cpp b/src/Storage.cpp index 472bc579d5..eadf0e1571 100644 --- a/src/Storage.cpp +++ b/src/Storage.cpp @@ -29,6 +29,7 @@ Storage::Storage(Notifier& notifier, RpcServer& rpc_server) } Storage::~Storage() { + Logger::GetInstance().SetLogger(nullptr); m_terminating = true; m_rpc_results_cond.notify_all(); }