mirror of https://github.com/Icinga/icinga2.git
Fixed crash while shutting down Icinga.
This commit is contained in:
parent
160219f4d3
commit
06b1a73864
|
@ -69,8 +69,6 @@ Application::~Application(void)
|
||||||
|
|
||||||
m_ShuttingDown = true;
|
m_ShuttingDown = true;
|
||||||
|
|
||||||
DynamicObject::DeactivateObjects();
|
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
WSACleanup();
|
WSACleanup();
|
||||||
#endif /* _WIN32 */
|
#endif /* _WIN32 */
|
||||||
|
@ -300,8 +298,6 @@ int Application::Run(int argc, char **argv)
|
||||||
|
|
||||||
DynamicObject::FinishTx();
|
DynamicObject::FinishTx();
|
||||||
DynamicObject::DeactivateObjects();
|
DynamicObject::DeactivateObjects();
|
||||||
|
|
||||||
assert(m_Instance == NULL);
|
|
||||||
} catch (const exception& ex) {
|
} catch (const exception& ex) {
|
||||||
Logger::Write(LogCritical, "base", "---");
|
Logger::Write(LogCritical, "base", "---");
|
||||||
Logger::Write(LogCritical, "base", "Exception: " + Utility::GetTypeName(typeid(ex)));
|
Logger::Write(LogCritical, "base", "Exception: " + Utility::GetTypeName(typeid(ex)));
|
||||||
|
|
|
@ -45,6 +45,8 @@ int main(int argc, char **argv)
|
||||||
lt_dlinit();
|
lt_dlinit();
|
||||||
#endif /* _WIN32 */
|
#endif /* _WIN32 */
|
||||||
|
|
||||||
|
/* This must be done before calling any other functions
|
||||||
|
* in the base library. */
|
||||||
Application::SetMainThread();
|
Application::SetMainThread();
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
|
@ -60,14 +62,13 @@ int main(int argc, char **argv)
|
||||||
return EXIT_FAILURE;
|
return EXIT_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
String configFile = argv[2];
|
|
||||||
|
|
||||||
String componentDirectory = Utility::DirName(Application::GetExePath(argv[0])) + "/../lib/icinga2";
|
String componentDirectory = Utility::DirName(Application::GetExePath(argv[0])) + "/../lib/icinga2";
|
||||||
Component::AddSearchDir(componentDirectory);
|
Component::AddSearchDir(componentDirectory);
|
||||||
|
|
||||||
DynamicObject::BeginTx();
|
DynamicObject::BeginTx();
|
||||||
|
|
||||||
/* load config file */
|
/* load config file */
|
||||||
|
String configFile = argv[2];
|
||||||
vector<ConfigItem::Ptr> configItems = ConfigCompiler::CompileFile(configFile);
|
vector<ConfigItem::Ptr> configItems = ConfigCompiler::CompileFile(configFile);
|
||||||
|
|
||||||
Logger::Write(LogInformation, "icinga", "Executing config items...");
|
Logger::Write(LogInformation, "icinga", "Executing config items...");
|
||||||
|
@ -83,6 +84,8 @@ int main(int argc, char **argv)
|
||||||
if (!app)
|
if (!app)
|
||||||
throw_exception(runtime_error("Configuration must create an Application object."));
|
throw_exception(runtime_error("Configuration must create an Application object."));
|
||||||
|
|
||||||
|
/* The application class doesn't need to know about the "-c configFile"
|
||||||
|
* command-line arguments. */
|
||||||
return app->Run(argc - 2, &(argv[2]));
|
return app->Run(argc - 2, &(argv[2]));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue