You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I can't reproduce this (tried many runs, and varying timing, GOMAXPROCS), the code looks fine, and this has been testing for years inside Google's build system for dl.google.com. I'm inclined to blame dragonfly somehow, even though that's lazy of me.
Hey, @dvyukov, have you ever reviewed this code? Maybe it is buggy.
@bradfitz I guess one of the goroutines in test did not block in 100ms.
It's easy to reproduce if you comment out the sleep.
The following sequence does not do what it is meant to do. If calls > 1, then wg.Wait won't return.
wg.Wait()
if got := atomic.LoadInt32(&calls); got != 1 {
t.Errorf("number of calls = %d; want 1", got)
}
See http://build.golang.org/log/683c92f5ad9b397c36b9e6bcd3d457e70a2eca59.
The singleflight.Group.Do didn't return?
The text was updated successfully, but these errors were encountered: