From 6f483a4d36c77d986d1163a4132d2e117c1e2f01 Mon Sep 17 00:00:00 2001 From: chrislu Date: Thu, 25 Aug 2022 22:20:34 -0700 Subject: [PATCH] atomic add fix https://github.com/seaweedfs/seaweedfs/issues/3514 --- weed/topology/disk.go | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/weed/topology/disk.go b/weed/topology/disk.go index 99ea980d8..1917d7126 100644 --- a/weed/topology/disk.go +++ b/weed/topology/disk.go @@ -5,6 +5,7 @@ import ( "github.com/seaweedfs/seaweedfs/weed/storage/types" "github.com/seaweedfs/seaweedfs/weed/util" "sync" + "sync/atomic" "github.com/seaweedfs/seaweedfs/weed/pb/master_pb" "github.com/seaweedfs/seaweedfs/weed/storage/erasure_coding" @@ -100,11 +101,11 @@ type DiskUsageCounts struct { } func (a *DiskUsageCounts) addDiskUsageCounts(b *DiskUsageCounts) { - a.volumeCount += b.volumeCount - a.remoteVolumeCount += b.remoteVolumeCount - a.activeVolumeCount += b.activeVolumeCount - a.ecShardCount += b.ecShardCount - a.maxVolumeCount += b.maxVolumeCount + atomic.AddInt64(&a.volumeCount, b.volumeCount) + atomic.AddInt64(&a.remoteVolumeCount, b.remoteVolumeCount) + atomic.AddInt64(&a.activeVolumeCount, b.activeVolumeCount) + atomic.AddInt64(&a.ecShardCount, b.ecShardCount) + atomic.AddInt64(&a.maxVolumeCount, b.maxVolumeCount) } func (a *DiskUsageCounts) FreeSpace() int64 {