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;
};
}
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;
}
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...");