This revision was landed with ongoing or failed builds. This revision was automatically updated to reflect the committed changes. Closed by commit rG632cbcac7906: [lldb] Move once_flags in HostInfoLinux so the internal state struct (authored by teemperor). Herald added a subscriber: lldb-commits.
Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D104093/new/ https://reviews.llvm.org/D104093 Files: lldb/source/Host/linux/HostInfoLinux.cpp Index: lldb/source/Host/linux/HostInfoLinux.cpp =================================================================== --- lldb/source/Host/linux/HostInfoLinux.cpp +++ lldb/source/Host/linux/HostInfoLinux.cpp @@ -26,7 +26,9 @@ namespace { struct HostInfoLinuxFields { + llvm::once_flag m_distribution_once_flag; std::string m_distribution_id; + llvm::once_flag m_os_version_once_flag; llvm::VersionTuple m_os_version; }; @@ -40,8 +42,8 @@ } llvm::VersionTuple HostInfoLinux::GetOSVersion() { - static llvm::once_flag g_once_flag; - llvm::call_once(g_once_flag, []() { + assert(g_fields && "Missing call to Initialize?"); + llvm::call_once(g_fields->m_os_version_once_flag, []() { struct utsname un; if (uname(&un) != 0) return; @@ -82,10 +84,10 @@ } llvm::StringRef HostInfoLinux::GetDistributionId() { + assert(g_fields && "Missing call to Initialize?"); // Try to run 'lbs_release -i', and use that response for the distribution // id. - static llvm::once_flag g_once_flag; - llvm::call_once(g_once_flag, []() { + llvm::call_once(g_fields->m_distribution_once_flag, []() { Log *log(lldb_private::GetLogIfAllCategoriesSet(LIBLLDB_LOG_HOST)); LLDB_LOGF(log, "attempting to determine Linux distribution...");
Index: lldb/source/Host/linux/HostInfoLinux.cpp =================================================================== --- lldb/source/Host/linux/HostInfoLinux.cpp +++ lldb/source/Host/linux/HostInfoLinux.cpp @@ -26,7 +26,9 @@ namespace { struct HostInfoLinuxFields { + llvm::once_flag m_distribution_once_flag; std::string m_distribution_id; + llvm::once_flag m_os_version_once_flag; llvm::VersionTuple m_os_version; }; @@ -40,8 +42,8 @@ } llvm::VersionTuple HostInfoLinux::GetOSVersion() { - static llvm::once_flag g_once_flag; - llvm::call_once(g_once_flag, []() { + assert(g_fields && "Missing call to Initialize?"); + llvm::call_once(g_fields->m_os_version_once_flag, []() { struct utsname un; if (uname(&un) != 0) return; @@ -82,10 +84,10 @@ } llvm::StringRef HostInfoLinux::GetDistributionId() { + assert(g_fields && "Missing call to Initialize?"); // Try to run 'lbs_release -i', and use that response for the distribution // id. - static llvm::once_flag g_once_flag; - llvm::call_once(g_once_flag, []() { + llvm::call_once(g_fields->m_distribution_once_flag, []() { Log *log(lldb_private::GetLogIfAllCategoriesSet(LIBLLDB_LOG_HOST)); LLDB_LOGF(log, "attempting to determine Linux distribution...");
_______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits