diff --git a/plugins/metrics/plugin.go b/plugins/metrics/plugin.go index 974ed49d60ff5edeaea8ea0fb1491a0701944065..bd99aac4c8c58c0111b73937ead5235e4f1ce423 100644 --- a/plugins/metrics/plugin.go +++ b/plugins/metrics/plugin.go @@ -43,14 +43,10 @@ func configure(_ *node.Plugin) { analysisOutboundBytes.Add(amountBytes) })) metrics.Events().CPUUsage.Attach(events.NewClosure(func(cpuPercent float64) { - cpuLock.Lock() - defer cpuLock.Unlock() - _cpuUsage = cpuPercent + cpuUsage.Store(cpuPercent) })) metrics.Events().MemUsage.Attach(events.NewClosure(func(memAllocBytes uint64) { - memUsageLock.Lock() - defer memUsageLock.Unlock() - _memUsageBytes = memAllocBytes + memUsageBytes.Store(memAllocBytes) })) metrics.Events().Synced.Attach(events.NewClosure(func(synced bool) { syncLock.Lock() diff --git a/plugins/metrics/process.go b/plugins/metrics/process.go index 137844b4cb19665a7dcd8005c01328e0607a1016..10dc44231219f174824d7186b9f681a0c3e5f2f4 100644 --- a/plugins/metrics/process.go +++ b/plugins/metrics/process.go @@ -5,22 +5,18 @@ import ( "time" "github.com/iotaledger/goshimmer/packages/metrics" - "github.com/iotaledger/hive.go/syncutils" "github.com/shirou/gopsutil/cpu" + "go.uber.org/atomic" ) var ( - _cpuUsage float64 - cpuLock syncutils.RWMutex - _memUsageBytes uint64 - memUsageLock syncutils.RWMutex + cpuUsage atomic.Float64 + memUsageBytes atomic.Uint64 ) // CpuUsage returns the current cpu usage func CpuUsage() float64 { - cpuLock.RLock() - defer cpuLock.RUnlock() - return _cpuUsage + return cpuUsage.Load() } func measureCPUUsage() { @@ -42,7 +38,5 @@ func measureMemUsage() { // MemUsage returns the current memory allocated as bytes func MemUsage() uint64 { - memUsageLock.RLock() - defer memUsageLock.RUnlock() - return _memUsageBytes + return memUsageBytes.Load() }