中級 › sync: negative WaitGroup counter パニックの原因と直し方 › パターン3
sync: negative WaitGroup counter パニックの原因と直し方
sync.WaitGroupのDone()はAdd()で加算した回数より多く呼ぶとカウンタが負になり、実行時にパニックします。
1 package main 2 3 import "sync" 4 5 func main() { 6 var wg sync.WaitGroup 7 wg.Add(3) 8 wg.Done() 9 wg.Done() 10 wg.Done() 11 _________ ^ 12 }
panic: sync: negative WaitGroup counterAdd(3)に対しDoneを4回呼んでいる
空欄を埋めて実行を通す
AddとDoneの呼び出し回数の対応が崩れると、WaitGroupは静かに壊れるのではなく即座にパニックで教えてくれます。
次の問題