runtime: unify mallocStub fast/slow blocks Inside mallocStub, combine all of the fast path (!isSlowPath_) logic into a single block, and all of the slow path logic into a single block. This is primarily a refactor with no semantic change. The intention is to make it easier to read which part are fast/slow, and to make it easier for a follow up to change to acquirem early in the fast path. The only semantic change is to move doubleCheckMalloc earlier. If the fast path decides to fall back to the slow path, that case will execute twice, but it is a trivial check and it's even compiled in by default. This arrangement does require duplicating lockRankMayQueueFinalizer in both blocks. We can't move it earlier because the fast path falling back to the slow path would call this twice, which would trigger a lock rank violation. We could potentially move it below (just before inlineMalloc). I don't believe it needs to come before deductAssistCredit, but I'd rather do that in a separate change. For #79667. For #79699. Change-Id: I1101cb112e0c48280c0317d986607ba66a6a6964 Reviewed-on: https://go-review.googlesource.com/c/go/+/794120 Reviewed-by: Michael Matloob <matloob@google.com> Reviewed-by: Michael Matloob <matloob@golang.org> Auto-Submit: Michael Pratt <mpratt@google.com> LUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.
Gopher image by Renee French, licensed under Creative Commons 4.0 Attribution license.
Our canonical Git repository is located at https://go.googlesource.com/go. There is a mirror of the repository at https://github.com/golang/go.
Unless otherwise noted, the Go source files are distributed under the BSD-style license found in the LICENSE file.
Official binary distributions are available at https://go.dev/dl/.
After downloading a binary release, visit https://go.dev/doc/install for installation instructions.
If a binary distribution is not available for your combination of operating system and architecture, visit https://go.dev/doc/install/source for source installation instructions.
Go is the work of thousands of contributors. We appreciate your help!
To contribute, please read the contribution guidelines at https://go.dev/doc/contribute.
Note that the Go project uses the issue tracker for bug reports and proposals only. See https://go.dev/wiki/Questions for a list of places to ask questions about the Go language.