123456789101112131415161718192021222324252627282930313233343536373839404142 |
- #pragma once
- #include <c10/util/Exception.h>
- #include <c10/util/Optional.h>
- #include <cstring>
- namespace c10 {
- namespace utils {
- // Reads an environment variable and returns
- // - optional<true>, if set equal to "1"
- // - optional<false>, if set equal to "0"
- // - nullopt, otherwise
- //
- // NB:
- // Issues a warning if the value of the environment variable is not 0 or 1.
- inline optional<bool> check_env(const char* name) {
- #ifdef _MSC_VER
- #pragma warning(push)
- #pragma warning(disable : 4996)
- #endif
- auto envar = std::getenv(name);
- #ifdef _MSC_VER
- #pragma warning(pop)
- #endif
- if (envar) {
- if (strcmp(envar, "0") == 0) {
- return false;
- }
- if (strcmp(envar, "1") == 0) {
- return true;
- }
- TORCH_WARN(
- "Ignoring invalid value for boolean flag ",
- name,
- ": ",
- envar,
- "valid values are 0 or 1.");
- }
- return c10::nullopt;
- }
- } // namespace utils
- } // namespace c10
|