Better use of LoadAndStore based on review feedback

Signed-off-by: Derek Collison <derek@nats.io>
This commit is contained in:
Derek Collison
2023-04-02 14:50:22 -07:00
parent 1fb1efd748
commit 64b22011dc

View File

@@ -367,16 +367,15 @@ func (a *Account) addStreamWithAssignment(config *StreamConfig, fsConfig *FileSt
}
// Make sure we are ok when these are done in parallel.
var wg sync.WaitGroup
v, loaded := jsa.inflight.LoadOrStore(cfg.Name, &wg)
ifwg := v.(*sync.WaitGroup)
v, loaded := jsa.inflight.LoadOrStore(cfg.Name, &sync.WaitGroup{})
wg := v.(*sync.WaitGroup)
if loaded {
ifwg.Wait()
wg.Wait()
} else {
ifwg.Add(1)
wg.Add(1)
defer func() {
jsa.inflight.Delete(cfg.Name)
ifwg.Done()
wg.Done()
}()
}