commit | 56d357773e8497dfd526f0727e187720d1093757 | [log] [tgz] |
---|---|---|
author | LE Manh Cuong <cuong.manhle.vn@gmail.com> | Fri Apr 12 11:58:03 2019 +0700 |
committer | Brad Fitzpatrick <bradfitz@golang.org> | Fri Apr 12 18:36:30 2019 +0000 |
tree | 06fcca271037d34aa2338d69647c8dd2c233e20e | |
parent | e225da77a7e68af35c70ccbf71af2b83e6acac3c [diff] |
singleflight: fix duplicate deleting key when Forget called When Forget was called, we delete key associated with current call from map. When that call is done, it does delete key again, causing the same key set by other call after Forget lost. To fix it, adding a boolean value to check whether the call is forgotten, the call only does delete key if Forget is not called. Fixes golang/go#31420 Change-Id: I9708352ca3ff76c77f659916b37a496fdeb480d2 Reviewed-on: https://go-review.googlesource.com/c/sync/+/171897 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
This repository provides Go concurrency primitives in addition to the ones provided by the language and “sync” and “sync/atomic” packages.
The easiest way to install is to run go get -u golang.org/x/sync
. You can also manually git clone the repository to $GOPATH/src/golang.org/x/sync
.
This repository uses Gerrit for code changes. To learn how to submit changes to this repository, see https://golang.org/doc/contribute.html.
The main issue tracker for the sync repository is located at https://github.com/golang/go/issues. Prefix your issue with “x/sync:” in the subject line, so it is easy to find.