Skip to content

Commit

Permalink
#2319: lb: move LBManager::makeLB implementation into the header
Browse files Browse the repository at this point in the history
Fixes Intel 2023.2.0 undefined reference error.
  • Loading branch information
cz4rs authored and cwschilly committed Sep 20, 2024
1 parent 4f2c7f2 commit 7e872c3
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 14 deletions.
13 changes: 0 additions & 13 deletions src/vt/vrt/collection/balance/lb_invoke/lb_manager.cc
Original file line number Diff line number Diff line change
Expand Up @@ -173,19 +173,6 @@ void LBManager::setLoadModel(std::shared_ptr<LoadModel> model) {
nlb_data->getUserData());
}

template <typename LB>
LBManager::LBProxyType
LBManager::makeLB(std::string const& lb_name) {
auto proxy = theObjGroup()->makeCollective<LB>(lb_name);
auto strat = proxy.get();
strat->init(proxy);
auto base_proxy = proxy.template castToBase<lb::BaseLB>();

destroy_lb_ = [proxy]{ proxy.destroyCollective(); };

return base_proxy;
}

void LBManager::defaultPostLBWork(ReassignmentMsg* msg) {
auto reassignment = msg->reassignment;
auto phase = msg->phase;
Expand Down
11 changes: 10 additions & 1 deletion src/vt/vrt/collection/balance/lb_invoke/lb_manager.h
Original file line number Diff line number Diff line change
Expand Up @@ -231,7 +231,16 @@ struct LBManager : runtime::component::Component<LBManager> {
* \return objgroup proxy to the new load balancer
*/
template <typename LB>
LBProxyType makeLB(std::string const& lb_name = {});
LBProxyType makeLB(std::string const& lb_name = {}) {
auto proxy = theObjGroup()->makeCollective<LB>(lb_name);
auto strat = proxy.get();
strat->init(proxy);
auto base_proxy = proxy.template castToBase<lb::BaseLB>();

destroy_lb_ = [proxy]{ proxy.destroyCollective(); };

return base_proxy;
}

protected:
/**
Expand Down

0 comments on commit 7e872c3

Please sign in to comment.