in tensorflow_serving/core/basic_manager.cc [419:465]
std::vector<const Loader*> BasicManager::GetLoadersCurrentlyUsingResources()
const {
std::vector<const Loader*> loaders;
for (const auto& entry : managed_map_) {
const LoaderHarness& harness = *entry.second;
bool uses_resources;
switch (harness.state()) {
case LoaderHarness::State::kNew:
uses_resources = false;
break;
case LoaderHarness::State::kLoadRequested:
uses_resources = false;
break;
case LoaderHarness::State::kLoadApproved:
uses_resources = true;
break;
case LoaderHarness::State::kLoading:
uses_resources = true;
break;
case LoaderHarness::State::kReady:
uses_resources = true;
break;
case LoaderHarness::State::kQuiescing:
uses_resources = true;
break;
case LoaderHarness::State::kQuiesced:
uses_resources = true;
break;
case LoaderHarness::State::kUnloadRequested:
uses_resources = true;
break;
case LoaderHarness::State::kUnloading:
uses_resources = true;
break;
case LoaderHarness::State::kDisabled:
uses_resources = false;
break;
case LoaderHarness::State::kError:
uses_resources = false;
break;
}
if (uses_resources) {
loaders.push_back(harness.loader());
}
}
return loaders;
}