| 661 | LocaleGuard::~LocaleGuard() {} |
| 662 | |
| 663 | EnvVarGuard::EnvVarGuard(std::string name, std::optional<std::string> value) |
| 664 | : name_(std::move(name)) { |
| 665 | auto maybe_value = arrow::internal::GetEnvVar(name_); |
| 666 | if (maybe_value.ok()) { |
| 667 | old_value_ = *std::move(maybe_value); |
| 668 | } else { |
| 669 | old_value_ = std::nullopt; |
| 670 | } |
| 671 | if (value.has_value()) { |
| 672 | ARROW_CHECK_OK(arrow::internal::SetEnvVar(name_, *value)); |
| 673 | } else { |
| 674 | ARROW_CHECK_OK(arrow::internal::DelEnvVar(name_)); |
| 675 | } |
| 676 | } |
| 677 | |
| 678 | EnvVarGuard::~EnvVarGuard() { |
| 679 | if (old_value_.has_value()) { |