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

Function UserSelectedBackend

cpp/src/arrow/memory_pool.cc:104–136  ·  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

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