aboutsummaryrefslogtreecommitdiff
path: root/src/internal/sysinfo/sysinfo.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/internal/sysinfo/sysinfo.go')
-rw-r--r--src/internal/sysinfo/sysinfo.go29
1 files changed, 9 insertions, 20 deletions
diff --git a/src/internal/sysinfo/sysinfo.go b/src/internal/sysinfo/sysinfo.go
index 6a29ad2bc1..7debaa1e95 100644
--- a/src/internal/sysinfo/sysinfo.go
+++ b/src/internal/sysinfo/sysinfo.go
@@ -11,25 +11,14 @@ import (
"sync"
)
-var cpuInfo struct {
- once sync.Once
- name string
-}
+var CPUName = sync.OnceValue(func() string {
+ if name := cpu.Name(); name != "" {
+ return name
+ }
-func CPUName() string {
- cpuInfo.once.Do(func() {
- // Try to get the information from internal/cpu.
- if name := cpu.Name(); name != "" {
- cpuInfo.name = name
- return
- }
+ if name := osCPUInfoName(); name != "" {
+ return name
+ }
- // TODO(martisch): use /proc/cpuinfo and /sys/devices/system/cpu/ on Linux as fallback.
- if name := osCpuInfoName(); name != "" {
- cpuInfo.name = name
- return
- }
- })
-
- return cpuInfo.name
-}
+ return ""
+})