Copy metadata before spawning goroutine + prealloc maps (#10458)

In `(*cacheObjects).GetObjectNInfo` copy the metadata before spawning a goroutine.

Clean up a few map[string]string copies as well, reducing allocs and simplifying the code.

Fixes #10426
This commit is contained in:
Klaus Post
2020-09-10 11:37:22 -07:00
committed by GitHub
parent ce6cef6855
commit b7438fe4e6
16 changed files with 47 additions and 63 deletions

View File

@@ -112,6 +112,16 @@ func getWriteQuorum(drive int) int {
return quorum
}
// cloneMSS will clone a map[string]string.
// If input is nil an empty map is returned, not nil.
func cloneMSS(v map[string]string) map[string]string {
r := make(map[string]string, len(v))
for k, v := range v {
r[k] = v
}
return r
}
// URI scheme constants.
const (
httpScheme = "http"