int main(int argc, char* argv[]) { // set up some xbmc specific relationships XBMC::Context context; bool renderGUI = true; //this can't be set from CAdvancedSettings::Initialize() because it will overwrite //the loglevel set with the --debug flag #ifdef _DEBUG g_advancedSettings.m_logLevel = LOG_LEVEL_DEBUG; g_advancedSettings.m_logLevelHint = LOG_LEVEL_DEBUG; #else g_advancedSettings.m_logLevel = LOG_LEVEL_NORMAL; g_advancedSettings.m_logLevelHint = LOG_LEVEL_NORMAL; #endif CLog::SetLogLevel(g_advancedSettings.m_logLevel); #ifdef TARGET_POSIX #if defined(DEBUG) struct rlimit rlim; rlim.rlim_cur = rlim.rlim_max = RLIM_INFINITY; if (setrlimit(RLIMIT_CORE, &rlim) == -1) CLog::Log(LOGDEBUG, "Failed to set core size limit (%s)", strerror(errno)); #endif #endif setlocale(LC_NUMERIC, "C"); g_advancedSettings.Initialize(); CAppParamParser appParamParser; appParamParser.Parse(const_cast<const char**>(argv), argc); return XBMC_Run(renderGUI); }
int main(int argc, char* argv[]) { // set up some xbmc specific relationships XBMC::Context context; #if defined(_DEBUG) struct rlimit rlim; rlim.rlim_cur = rlim.rlim_max = RLIM_INFINITY; if (setrlimit(RLIMIT_CORE, &rlim) == -1) CLog::Log(LOGDEBUG, "Failed to set core size limit (%s)", strerror(errno)); #endif // Set up global SIGINT/SIGTERM handler struct sigaction signalHandler; std::memset(&signalHandler, 0, sizeof(signalHandler)); signalHandler.sa_handler = &XBMC_POSIX_HandleSignal; signalHandler.sa_flags = SA_RESTART; sigaction(SIGINT, &signalHandler, nullptr); sigaction(SIGTERM, &signalHandler, nullptr); setlocale(LC_NUMERIC, "C"); // Initialize before CAppParamParser so it can set the log level g_advancedSettings.Initialize(); CAppParamParser appParamParser; appParamParser.Parse(argv, argc); return XBMC_Run(true, appParamParser); }
int main(int argc, char* argv[]) { // set up some xbmc specific relationships XBMC::Context context; bool renderGUI = true; //this can't be set from CAdvancedSettings::Initialize() because it will overwrite //the loglevel set with the --debug flag #ifdef _DEBUG g_advancedSettings.m_logLevel = LOG_LEVEL_DEBUG; g_advancedSettings.m_logLevelHint = LOG_LEVEL_DEBUG; #else g_advancedSettings.m_logLevel = LOG_LEVEL_NORMAL; g_advancedSettings.m_logLevelHint = LOG_LEVEL_NORMAL; #endif CLog::SetLogLevel(g_advancedSettings.m_logLevel); #ifdef _LINUX #if defined(DEBUG) struct rlimit rlim; rlim.rlim_cur = rlim.rlim_max = RLIM_INFINITY; if (setrlimit(RLIMIT_CORE, &rlim) == -1) CLog::Log(LOGDEBUG, "Failed to set core size limit (%s)", strerror(errno)); #endif // Prevent child processes from becoming zombies on exit if not waited upon. See also Util::Command struct sigaction sa; memset(&sa, 0, sizeof(sa)); sa.sa_flags = SA_NOCLDWAIT; sa.sa_handler = SIG_IGN; sigaction(SIGCHLD, &sa, NULL); #endif setlocale(LC_NUMERIC, "C"); g_advancedSettings.Initialize(); #ifndef _WIN32 CAppParamParser appParamParser; appParamParser.Parse((const char **)argv, argc); #endif return XBMC_Run(renderGUI); }
int main(int argc, char* argv[]) { #if defined(_DEBUG) struct rlimit rlim; rlim.rlim_cur = rlim.rlim_max = RLIM_INFINITY; if (setrlimit(RLIMIT_CORE, &rlim) == -1) CLog::Log(LOGDEBUG, "Failed to set core size limit (%s)", strerror(errno)); #endif // Set up global SIGINT/SIGTERM handler struct sigaction signalHandler; std::memset(&signalHandler, 0, sizeof(signalHandler)); signalHandler.sa_handler = &XBMC_POSIX_HandleSignal; signalHandler.sa_flags = SA_RESTART; sigaction(SIGINT, &signalHandler, nullptr); sigaction(SIGTERM, &signalHandler, nullptr); setlocale(LC_NUMERIC, "C"); CAppParamParser appParamParser; appParamParser.Parse(argv, argc); return XBMC_Run(true, appParamParser); }