Browse Source

make writes to shared global hashmap threadsafe

historyLock
Dan Ballard 3 years ago
parent
commit
0b9266ba83
  1. 4
      pidusage.go

4
pidusage.go

@ -9,6 +9,7 @@ import (
"runtime"
"strconv"
"strings"
"sync"
)
// SysInfo will record cpu and memory data
@ -33,6 +34,7 @@ type fn func(int) (*SysInfo, error)
var fnMap map[string]fn
var platform string
var history map[int]Stat
var historyLock sync.Mutex
var eol string
func wrapper(statType string) func(pid int) (*SysInfo, error) {
@ -139,7 +141,9 @@ func stat(pid int, statType string) (*SysInfo, error) {
seconds = 1
}
historyLock.Lock()
history[pid] = *stat
historyLock.Unlock()
sysInfo.CPU = (total / seconds) * 100
sysInfo.Memory = stat.rss * pageSize
}

Loading…
Cancel
Save