diff --git a/src/multi_pipeline.cc b/src/multi_pipeline.cc index 55d3435acadb2c2d6a19a7f9dbc9892c4527577f..2afc5802a9bf45cfcf5f6c636bb6c34158518dbf 100644 --- a/src/multi_pipeline.cc +++ b/src/multi_pipeline.cc @@ -8,6 +8,8 @@ #include <boost/bind/bind.hpp> #include <boost/thread.hpp> +#include "micron/nmc.h" +#include "micron/nmc.hpp" #include "server.h" #include "tbb/task_group.h" #include "tbb/task_scheduler_init.h" @@ -23,6 +25,21 @@ MultiPipeline::MultiPipeline(Config c) server_thread_ = boost::thread(boost::bind(&boost::asio::io_service::run, &io_service_)); } + nmc_status_t default_status = NMC_NO_MEM; + Nmc default_nmc(&default_status); + if (default_status != 0) { + LOG(FATAL) << "Failed to allocate default NMC resources"; + } + + nmc_status_t nmc_status = NMC_NO_MEM; + NmcAttachProps nmc_properties; + Nmc prop_nmc(nmc_properties, &nmc_status); + if (nmc_status) { + LOG(FATAL) << "Failed to allocate NMC resources"; + } + uint32_t transf_engine_thread_count = nmc_properties.getTeTotalThreadCount(); + LOG(INFO) << "Number of TE threads: " << transf_engine_thread_count; + MakePipelines(); }