Add lock to node usage

This commit is contained in:
Samir Patel 2021-05-26 15:21:57 -05:00 committed by Samir Patel
parent 14533d88a1
commit 21e5cda7e0

8
api.go
View file

@ -969,6 +969,8 @@ func (api *API) requestUsageOfNodes() {
if err != nil {
api.server.logger.Infof("couldn't collect disk usage from %s: %s", node.URI, err)
}
api.usageCache.muRead.Lock()
defer api.usageCache.muRead.Unlock()
api.usageCache.data[node.ID] = nodeUsage[node.ID]
}
}
@ -978,7 +980,11 @@ func (api *API) calculateUsage() {
api.usageCache.muWrite.Lock()
defer api.usageCache.muWrite.Unlock()
if time.Since(api.usageCache.lastUpdated) > api.usageCache.refreshInterval {
api.usageCache.muRead.Lock()
lastUpdated := api.usageCache.lastUpdated
api.usageCache.muRead.Unlock()
if time.Since(lastUpdated) > api.usageCache.refreshInterval {
fmt.Printf("RefreshRate, expired: time: %v, current time: %v \n", api.usageCache.lastUpdated, time.Now())
indexDetails, nodeMetadataBytes, err := api.holder.Txf().IndexUsageDetails()