mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
runtime: remove redundant locking in mcache.refill
mcache.refill acquires g.m.locks, which is pointless because the caller itself absolutely must have done so already to prevent ownership of mcache from shifting. Also, mcache.refill's documentation is generally a bit out-of-date, so this cleans this up. Change-Id: Idc8de666fcaf3c3d96006bd23a8f307539587d6c Reviewed-on: https://go-review.googlesource.com/138195 Run-TryBot: Austin Clements <austin@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Rick Hudson <rlh@golang.org>
This commit is contained in:
parent
eac99c4466
commit
2d23ece135
1 changed files with 5 additions and 6 deletions
|
|
@ -101,12 +101,12 @@ func freemcache(c *mcache) {
|
|||
})
|
||||
}
|
||||
|
||||
// Gets a span that has a free object in it and assigns it
|
||||
// to be the cached span for the given sizeclass. Returns this span.
|
||||
// refill acquires a new span of span class spc for c. This span will
|
||||
// have at least one free object. The current span in c must be full.
|
||||
//
|
||||
// Must run in a non-preemptible context since otherwise the owner of
|
||||
// c could change.
|
||||
func (c *mcache) refill(spc spanClass) {
|
||||
_g_ := getg()
|
||||
|
||||
_g_.m.locks++
|
||||
// Return the current cached span to the central lists.
|
||||
s := c.alloc[spc]
|
||||
|
||||
|
|
@ -129,7 +129,6 @@ func (c *mcache) refill(spc spanClass) {
|
|||
}
|
||||
|
||||
c.alloc[spc] = s
|
||||
_g_.m.locks--
|
||||
}
|
||||
|
||||
func (c *mcache) releaseAll() {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue