@@ -56,11 +56,11 @@ public void run() {
56
56
for (File cpuFile : cpuFiles ) {
57
57
double minFreq = -1f ;
58
58
double maxFreq = -1f ;
59
+ BufferedReader minFreqReader = null ;
60
+ BufferedReader maxFreqReader = null ;
59
61
try {
60
- BufferedReader minFreqReader =
61
- new BufferedReader (new FileReader (cpuFile .getAbsolutePath () + "/cpufreq/cpuinfo_min_freq" ));
62
- BufferedReader maxFreqReader =
63
- new BufferedReader (new FileReader (cpuFile .getAbsolutePath () + "/cpufreq/cpuinfo_max_freq" ));
62
+ minFreqReader = new BufferedReader (new FileReader (cpuFile .getAbsolutePath () + "/cpufreq/cpuinfo_min_freq" ));
63
+ maxFreqReader = new BufferedReader (new FileReader (cpuFile .getAbsolutePath () + "/cpufreq/cpuinfo_max_freq" ));
64
64
minFreq = parseDouble (minFreqReader .readLine ());
65
65
maxFreq = parseDouble (maxFreqReader .readLine ());
66
66
@@ -70,6 +70,17 @@ public void run() {
70
70
}
71
71
} catch (IOException ie ) {
72
72
Log .w (TAG , "Error reading the min/max cpufreq" , ie );
73
+ } finally {
74
+ if (minFreqReader != null ) {
75
+ try {
76
+ minFreqReader .close ();
77
+ } catch (IOException ignore ) {}
78
+ }
79
+ if (maxFreqReader != null ) {
80
+ try {
81
+ maxFreqReader .close ();
82
+ } catch (IOException ignore ) {}
83
+ }
73
84
}
74
85
cachedFrequencies .put (cpuFile , new CpuFreq (cpuFile .getName (), minFreq , -1f , maxFreq ));
75
86
}
@@ -81,8 +92,9 @@ public void run() {
81
92
for (File cpuFile : cachedFrequencies .keySet ()) {
82
93
CpuFreq cached = cachedFrequencies .get (cpuFile );
83
94
double curFreq = -1f ;
95
+ BufferedReader curFreqReader = null ;
84
96
try {
85
- BufferedReader curFreqReader = new BufferedReader (new FileReader (cpuFile .getAbsolutePath () + "/cpufreq/scaling_cur_freq" ));
97
+ curFreqReader = new BufferedReader (new FileReader (cpuFile .getAbsolutePath () + "/cpufreq/scaling_cur_freq" ));
86
98
curFreq = parseDouble (curFreqReader .readLine ());
87
99
88
100
if (DebugOverlay .isDebugLoggingEnabled ()) {
@@ -91,6 +103,12 @@ public void run() {
91
103
92
104
} catch (IOException ie ) {
93
105
Log .w (TAG , "Error reading the current cpufreq" , ie );
106
+ } finally {
107
+ if (curFreqReader != null ) {
108
+ try {
109
+ curFreqReader .close ();
110
+ } catch (IOException ignore ) {}
111
+ }
94
112
}
95
113
96
114
newCpuFreqList .add (new CpuFreq (cached .getCpuName (), cached .getMinFreq (), curFreq , cached .getMaxFreq ()));
@@ -144,15 +162,11 @@ protected List<CpuFreq> getLatestData() {
144
162
145
163
private static File [] getCpuFiles () {
146
164
File dir = new File ("/sys/devices/system/cpu/" );
147
- File [] files = dir .listFiles (new FileFilter () {
165
+ return dir .listFiles (new FileFilter () {
148
166
@ Override
149
167
public boolean accept (File file ) {
150
- if (Pattern .matches ("cpu[0-9]+" , file .getName ())) {
151
- return true ;
152
- }
153
- return false ;
168
+ return Pattern .matches ("cpu[0-9]+" , file .getName ());
154
169
}
155
170
});
156
- return files ;
157
171
}
158
172
}
0 commit comments