commit | 8fcdb60fdcc0539c5e357b2308249e4e752147f1 | [log] [tgz] |
---|---|---|
author | Cuong Manh Le <[email protected]> | Thu Sep 29 11:59:30 2022 +0700 |
committer | Gopher Robot <[email protected]> | Thu Sep 29 20:41:14 2022 +0000 |
tree | d386e51a672a47e5c2fca164501a42ef9b49e811 | |
parent | 7f9b1623fab7a8a3d219f2a4db1b2fe98fadafea [diff] |
singleflight: avoid race between multiple Do calls This is port of CL 436437, but without the test. ForgotUnshared has not been ported here yet. Change-Id: Id54d0c41d1a7948bf008e458c44b21670ada81e4 Reviewed-on: https://go-review.googlesource.com/c/sync/+/436495 Run-TryBot: Cuong Manh Le <[email protected]> Reviewed-by: Bryan Mills <[email protected]> TryBot-Result: Gopher Robot <[email protected]> Auto-Submit: Cuong Manh Le <[email protected]> Reviewed-by: Dmitri Shuralyov <[email protected]>
diff --git a/singleflight/singleflight.go b/singleflight/singleflight.go index 7c7fc50..8473fb7 100644 --- a/singleflight/singleflight.go +++ b/singleflight/singleflight.go
@@ -144,9 +144,9 @@ c.err = errGoexit } - c.wg.Done() g.mu.Lock() defer g.mu.Unlock() + c.wg.Done() if g.m[key] == c { delete(g.m, key) }