make writes to shared global hashmap threadsafe

This commit is contained in:
Dan Ballard 2018-11-21 13:42:58 -08:00
parent f39c7cf5e2
commit 0b9266ba83
1 changed files with 4 additions and 0 deletions

View File

@ -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
}