int main(int /*argc*/, char ** /*argv*/) { ConfigureLogger(); std::shared_ptr<boost::asio::io_service> io_service = std::make_shared<boost::asio::io_service>(); std::shared_ptr<boost::asio::io_service::work> worker = std::make_shared<boost::asio::io_service::work>(*io_service); boost::thread_group threads; for (auto i = 0; i < 5; ++i) { threads.create_thread([=] () {io_service->run();}); } env::Environment::pointer_type environment = std::make_shared<env::Environment>(io_service); environment->Initialize({45, 10, 20, 32, 15, 25}); environment->AddTask(12, 8); environment->AddTask(20, 5); environment->AddTask(4, 2); worker.reset(); threads.join_all(); return 0; }
/*---------------------------------------------------------------------- | NPT_LogManager::Configure +---------------------------------------------------------------------*/ NPT_Result NPT_LogManager::Configure(const char* config_sources) { // exit if we're already initialized if (m_Configured) return NPT_SUCCESS; // prevent multiple threads from configuring at the same time NPT_LogManagerAutoLocker lock(*this); if (m_Configured) return NPT_SUCCESS; // we need to be disabled while we configure ourselves NPT_LogManagerAutoDisabler autodisabler; // set some default config values SetConfigValue(".handlers", NPT_LOG_ROOT_DEFAULT_HANDLER); // see if the config sources have been set to non-default values if (config_sources == NULL) { config_sources = NPT_CONFIG_DEFAULT_LOG_CONFIG_SOURCE; } NPT_String config_sources_system; if (NPT_SUCCEEDED(NPT_GetSystemLogConfig(config_sources_system))) { config_sources = config_sources_system; } NPT_String config_sources_env; if (NPT_SUCCEEDED(NPT_Environment::Get(NPT_CONFIG_LOG_CONFIG_ENV, config_sources_env))) { config_sources = config_sources_env; } /* load all configs */ NPT_String config_source; const char* cursor = config_sources; const char* source = config_sources; for (;;) { if (*cursor == '\0' || *cursor == '|') { if (cursor != source) { config_source.Assign(source, (NPT_Size)(cursor-source)); config_source.Trim(" \t"); ParseConfigSource(config_source); if (*cursor == '|') source = cursor+1; } if (*cursor == '\0') break; } cursor++; } /* create the root logger */ LogManager.m_Root = new NPT_Logger("", *this); LogManager.m_Root->m_Level = NPT_CONFIG_DEFAULT_LOG_LEVEL; LogManager.m_Root->m_LevelIsInherited = false; ConfigureLogger(LogManager.m_Root); // we're initialized now m_Configured = true; return NPT_SUCCESS; }