[cpu] Fix #599 cap percent values returned by Percent() between 0 and 100

See https://github.com/shirou/gopsutil/issues/599#issuecomment-491942842 for a repoduction case
This commit is contained in:
Lomanic 2019-06-23 16:14:14 +02:00
parent 2ac72f1fa1
commit 946c9ce6ea
1 changed files with 2 additions and 1 deletions

View File

@ -4,6 +4,7 @@ import (
"context"
"encoding/json"
"fmt"
"math"
"strconv"
"strings"
"sync"
@ -112,7 +113,7 @@ func calculateBusy(t1, t2 TimesStat) float64 {
if t2All <= t1All {
return 1
}
return (t2Busy - t1Busy) / (t2All - t1All) * 100
return math.Min(100, math.Max(0, (t2Busy-t1Busy)/(t2All-t1All)*100))
}
func calculateAllBusy(t1, t2 []TimesStat) ([]float64, error) {