summaryrefslogtreecommitdiffstats
path: root/src/Common/Initializable.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/Common/Initializable.cpp')
-rw-r--r--src/Common/Initializable.cpp12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/Common/Initializable.cpp b/src/Common/Initializable.cpp
index 9e7a49e..65893a1 100644
--- a/src/Common/Initializable.cpp
+++ b/src/Common/Initializable.cpp
@@ -28,12 +28,17 @@ namespace Mad {
namespace Common {
std::stack<Initializable*> Initializable::initializedObjects;
-
+bool Initializable::logInit = false;
void Initializable::init() {
if(initialized)
return;
+ if(!logInit) {
+ logInit = true;
+ LogManager::get();
+ }
+
if(initializing) {
Logger::log(Logger::CRITICAL, "Fatal initialization error: cyclic dependencies.");
std::terminate();
@@ -41,9 +46,6 @@ void Initializable::init() {
initializing = true;
- if(!(LogManager::get()->isInitialized() || LogManager::get()->isInitializing()))
- LogManager::get()->init();
-
doInit();
Configurable *c = dynamic_cast<Configurable*>(this);
@@ -68,6 +70,8 @@ void Initializable::deinit() {
initializedObjects.pop();
}
+
+ logInit = false;
}
}