CPU Usage Dive by Zero Issue (Chrome Console Error Reported)

Added explicit checks in “CpuUse::UpdateCpuUse” to avoid division by zero; CPU usage and overhead are forced to 0 when times are zero

Validated audio driver CPU usage in “AudioHost::getJackStatus”, replacing non‑finite results with 0
This commit is contained in:
Extremesecrecy
2025-07-24 07:50:33 -07:00
parent 43cc758d18
commit b3853e1bdb
2 changed files with 16 additions and 7 deletions
+4
View File
@@ -2120,6 +2120,10 @@ public:
if (this->audioDriver != nullptr) if (this->audioDriver != nullptr)
{ {
result.cpuUsage_ = audioDriver->CpuUse(); result.cpuUsage_ = audioDriver->CpuUse();
if (!std::isfinite(result.cpuUsage_))
{
result.cpuUsage_ = 0.0f;
}
} }
GetCpuFrequency(&result.cpuFreqMin_, &result.cpuFreqMax_); GetCpuFrequency(&result.cpuFreqMin_, &result.cpuFreqMax_);
result.hasCpuGovernor_ = HasCpuGovernor(); result.hasCpuGovernor_ = HasCpuGovernor();
+7 -2
View File
@@ -143,9 +143,14 @@ namespace pipedal
SampleT totalTime = writeTime + readTime + processingTime; SampleT totalTime = writeTime + readTime + processingTime;
SampleT maxTime = waitTime + processingTime; SampleT maxTime = waitTime + processingTime;
float result = 0.0f;
float overhead = 0.0f;
if (maxTime != 0 && totalTime != 0)
{
result = 100.0f * (processingTime) / (maxTime);
overhead = 100.0f * (overheadTime * 2) / totalTime;
}
float result = 100.0f*(processingTime)/(maxTime);
float overhead = 100.0F*(overheadTime*2)/totalTime;
{ {
std::lock_guard lock{sync}; std::lock_guard lock{sync};
currentCpuUse = result; currentCpuUse = result;