MCPcopy Create free account
hub / github.com/apache/arrow / UserSelectedBackend

Function UserSelectedBackend

cpp/src/arrow/memory_pool.cc:99–131  ·  view source on GitHub ↗

Return the MemoryPoolBackend selected by the user through the ARROW_DEFAULT_MEMORY_POOL environment variable, if any.

Source from the content-addressed store, hash-verified

97// Return the MemoryPoolBackend selected by the user through the
98// ARROW_DEFAULT_MEMORY_POOL environment variable, if any.
99std::optional<MemoryPoolBackend> UserSelectedBackend() {
100 static auto user_selected_backend = []() -> std::optional<MemoryPoolBackend> {
101 auto unsupported_backend = [](const std::string& name) {
102 std::vector<std::string> supported;
103 for (const auto backend : SupportedBackends()) {
104 supported.push_back(std::string("'") + backend.name + "'");
105 }
106 ARROW_LOG(WARNING) << "Unsupported backend '" << name << "' specified in "
107 << kDefaultBackendEnvVar << " (supported backends are "
108 << internal::JoinStrings(supported, ", ") << ")";
109 };
110
111 auto maybe_name = internal::GetEnvVar(kDefaultBackendEnvVar);
112 if (!maybe_name.ok()) {
113 return {};
114 }
115 const auto name = *std::move(maybe_name);
116 if (name.empty()) {
117 // An empty environment variable is considered missing
118 return {};
119 }
120 const auto found = std::find_if(
121 SupportedBackends().begin(), SupportedBackends().end(),
122 [&](const SupportedBackend& backend) { return name == backend.name; });
123 if (found != SupportedBackends().end()) {
124 return found->backend;
125 }
126 unsupported_backend(name);
127 return {};
128 }();
129
130 return user_selected_backend;
131}
132
133MemoryPoolBackend DefaultBackend() {
134 auto backend = UserSelectedBackend();

Callers 1

DefaultBackendFunction · 0.85

Calls 7

JoinStringsFunction · 0.85
GetEnvVarFunction · 0.85
push_backMethod · 0.80
okMethod · 0.45
emptyMethod · 0.45
beginMethod · 0.45
endMethod · 0.45

Tested by

no test coverage detected