@@ -17,13 +17,12 @@ package procfs
1717
1818import (
1919 "bufio"
20- "bytes"
2120 "errors"
21+ "io"
22+ "os"
2223 "regexp"
2324 "strconv"
2425 "strings"
25-
26- "github.com/prometheus/procfs/internal/util"
2726)
2827
2928// CPUInfo contains general information about a system CPU found in /proc/cpuinfo
@@ -64,15 +63,16 @@ var (
6463// CPUInfo returns information about current system CPUs.
6564// See https://www.kernel.org/doc/Documentation/filesystems/proc.txt
6665func (fs FS ) CPUInfo () ([]CPUInfo , error ) {
67- data , err := util . ReadFileNoStat (fs .proc .Path ("cpuinfo" ))
66+ file , err := os . Open (fs .proc .Path ("cpuinfo" ))
6867 if err != nil {
6968 return nil , err
7069 }
71- return parseCPUInfo (data )
70+ defer file .Close ()
71+ return parseCPUInfo (file )
7272}
7373
74- func parseCPUInfoX86 (info [] byte ) ([]CPUInfo , error ) {
75- scanner := bufio .NewScanner (bytes . NewReader ( info ) )
74+ func parseCPUInfoX86 (info io. Reader ) ([]CPUInfo , error ) {
75+ scanner := bufio .NewScanner (info )
7676
7777 // find the first "processor" line
7878 firstLine := firstNonEmptyLine (scanner )
@@ -186,8 +186,8 @@ func parseCPUInfoX86(info []byte) ([]CPUInfo, error) {
186186 return cpuinfo , nil
187187}
188188
189- func parseCPUInfoARM (info [] byte ) ([]CPUInfo , error ) {
190- scanner := bufio .NewScanner (bytes . NewReader ( info ) )
189+ func parseCPUInfoARM (info io. Reader ) ([]CPUInfo , error ) {
190+ scanner := bufio .NewScanner (info )
191191
192192 cpuinfo := []CPUInfo {{}}
193193 i := 0
@@ -236,8 +236,8 @@ func parseCPUInfoARM(info []byte) ([]CPUInfo, error) {
236236 return cpuinfo , nil
237237}
238238
239- func parseCPUInfoS390X (info [] byte ) ([]CPUInfo , error ) {
240- scanner := bufio .NewScanner (bytes . NewReader ( info ) )
239+ func parseCPUInfoS390X (info io. Reader ) ([]CPUInfo , error ) {
240+ scanner := bufio .NewScanner (info )
241241
242242 firstLine := firstNonEmptyLine (scanner )
243243 if ! strings .HasPrefix (firstLine , "vendor_id" ) || ! strings .Contains (firstLine , ":" ) {
@@ -304,8 +304,8 @@ func parseCPUInfoS390X(info []byte) ([]CPUInfo, error) {
304304 return cpuinfo , nil
305305}
306306
307- func parseCPUInfoPPC (info [] byte ) ([]CPUInfo , error ) {
308- scanner := bufio .NewScanner (bytes . NewReader ( info ) )
307+ func parseCPUInfoPPC (info io. Reader ) ([]CPUInfo , error ) {
308+ scanner := bufio .NewScanner (info )
309309
310310 firstLine := firstNonEmptyLine (scanner )
311311 if ! strings .HasPrefix (firstLine , "processor" ) || ! strings .Contains (firstLine , ":" ) {
0 commit comments