Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit75912f5

Browse files
committed
fix: prevented multiple frequency readers runs at once (#2449)
1 parentf342b08 commit75912f5

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

‎Modules/CPU/readers.swift

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -301,6 +301,7 @@ public class FrequencyReader: Reader<[Double]> {
301301
privatevarprev:(samples:CFDictionary, time:TimeInterval)?=nil
302302

303303
privateletmeasurementCount:Int=4
304+
privatevarisReading:Bool=false
304305

305306
privatestructIOSample{
306307
letgroup:String
@@ -320,7 +321,8 @@ public class FrequencyReader: Reader<[Double]> {
320321
}
321322

322323
publicoverridefunc read(){
323-
guard !self.eCoreFreqs.isEmpty && !self.pCoreFreqs.isEmpty,self.channels!=nil,self.subscription!=nilelse{return}
324+
guard !self.isReading, !self.eCoreFreqs.isEmpty && !self.pCoreFreqs.isEmpty,self.channels!=nil,self.subscription!=nilelse{return}
325+
self.isReading=true
324326
letminECoreFreq=Double(self.eCoreFreqs.min()??0)
325327
letminPCoreFreq=Double(self.pCoreFreqs.min()??0)
326328

@@ -352,6 +354,7 @@ public class FrequencyReader: Reader<[Double]> {
352354
letpFreq:Double= pCores.reduce(0,{ $0+ $1})/ Double(self.measurementCount)
353355

354356
self.callback([eFreq, pFreq])
357+
self.isReading=false
355358
}
356359
}
357360

@@ -421,7 +424,12 @@ public class FrequencyReader: Reader<[Double]> {
421424

422425
for_in0..<self.measurementCount{
423426
letmilliseconds=UInt64(step)*1_000_000
424-
try?awaitTask.sleep(nanoseconds: milliseconds)
427+
do{
428+
tryawaitTask.sleep(nanoseconds: milliseconds)
429+
}catch{
430+
ifTask.isCancelled{return[]}
431+
continue
432+
}
425433

426434
guardlet next=self.getSample()else{continue}
427435

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp