cmd/go: modload should use a read-write lock to improve concurrency
This PR will be imported into Gerrit with the title and first comment (this text) used to generate the subject and body of the Gerrit change. Change-Id: I3f9bc8a2459059a924a04fa02794e258957819b5 GitHub-Last-Rev: 6ad6f6a70e21dc45fc0c880b8732fb87c656c520 GitHub-Pull-Request: golang/go#74311 Reviewed-on: https://go-review.googlesource.com/c/go/+/683215 Reviewed-by: Michael Matloob <matloob@golang.org> Reviewed-by: Ian Alexander <jitsu@google.com> Reviewed-by: Michael Matloob <matloob@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
This commit is contained in:
committed by
Michael Matloob
parent
e666972a67
commit
4ab1aec007
@@ -149,7 +149,7 @@ type MainModuleSet struct {
|
||||
// highest replaced version of each module path; empty string for wildcard-only replacements
|
||||
highestReplaced map[string]string
|
||||
|
||||
indexMu sync.Mutex
|
||||
indexMu sync.RWMutex
|
||||
indices map[module.Version]*modFileIndex
|
||||
}
|
||||
|
||||
@@ -228,8 +228,8 @@ func (mms *MainModuleSet) GetSingleIndexOrNil() *modFileIndex {
|
||||
}
|
||||
|
||||
func (mms *MainModuleSet) Index(m module.Version) *modFileIndex {
|
||||
mms.indexMu.Lock()
|
||||
defer mms.indexMu.Unlock()
|
||||
mms.indexMu.RLock()
|
||||
defer mms.indexMu.RUnlock()
|
||||
return mms.indices[m]
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user