onPeerUpdateGoroutineCount use int32

This commit is contained in:
Konstantin Lebedev
2022-07-20 18:40:35 +05:00
parent c5189c343b
commit 7875470e74

View File

@@ -67,7 +67,7 @@ type MasterServer struct {
boundedLeaderChan chan int boundedLeaderChan chan int
onPeerUpdateDoneCn chan string onPeerUpdateDoneCn chan string
onPeerUpdateGoroutineCount uint32 onPeerUpdateGoroutineCount int32
// notifying clients // notifying clients
clientChansLock sync.RWMutex clientChansLock sync.RWMutex
@@ -367,16 +367,16 @@ func (ms *MasterServer) OnPeerUpdate(update *master_pb.ClusterNodeUpdate, startF
hashicorpRaft.ServerAddress(peerAddress.ToGrpcAddress()), 0, 0) hashicorpRaft.ServerAddress(peerAddress.ToGrpcAddress()), 0, 0)
} }
} }
if atomic.LoadUint32(&ms.onPeerUpdateGoroutineCount) > 0 { if atomic.LoadInt32(&ms.onPeerUpdateGoroutineCount) > 0 {
ms.onPeerUpdateDoneCn <- peerName ms.onPeerUpdateDoneCn <- peerName
} }
} else if isLeader { } else if isLeader {
go func(peerName string) { go func(peerName string) {
raftServerRemovalTimeAfter := time.After(RaftServerRemovalTime) raftServerRemovalTimeAfter := time.After(RaftServerRemovalTime)
raftServerPingTicker := time.NewTicker(5 * time.Minute) raftServerPingTicker := time.NewTicker(5 * time.Minute)
atomic.AddUint32(&ms.onPeerUpdateGoroutineCount, 1) atomic.AddInt32(&ms.onPeerUpdateGoroutineCount, 1)
defer func() { defer func() {
atomic.AddUint32(&ms.onPeerUpdateGoroutineCount, -1) atomic.AddInt32(&ms.onPeerUpdateGoroutineCount, -1)
}() }()
for { for {
select { select {