summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Colin Cross <ccross@android.com> 2025-02-11 14:25:22 -0800
committer Colin Cross <ccross@android.com> 2025-02-11 16:06:22 -0800
commit0496b1095c8d27c90a49f189c724854c6c5947da (patch)
treec4e8655c6b19ef093d2733220a01a06344c50211
parente27e4bf70783c0d7fecfc27a06d2902c5225b2a8 (diff)
Use blueprint/pool
Use blueprint's typesafe sync.Pool. Test: builds Change-Id: I3de1c455f229eb23ac3ca3dc0baa3bdd7bc0d5d6
-rw-r--r--android/Android.bp1
-rw-r--r--android/mutator.go19
-rw-r--r--android/transition.go4
3 files changed, 9 insertions, 15 deletions
diff --git a/android/Android.bp b/android/Android.bp
index 540d65bd4..aef18fec0 100644
--- a/android/Android.bp
+++ b/android/Android.bp
@@ -11,6 +11,7 @@ bootstrap_go_package {
"blueprint-depset",
"blueprint-gobtools",
"blueprint-metrics",
+ "blueprint-pool",
"sbox_proto",
"soong",
"soong-android_team_proto",
diff --git a/android/mutator.go b/android/mutator.go
index d6166d2de..12861c074 100644
--- a/android/mutator.go
+++ b/android/mutator.go
@@ -15,9 +15,8 @@
package android
import (
- "sync"
-
"github.com/google/blueprint"
+ "github.com/google/blueprint/pool"
)
// Phases:
@@ -272,15 +271,9 @@ type BottomUpMutatorContext interface {
// for each transition mutator. bottomUpMutatorContext is created once for every module for every BottomUp mutator.
// Use a global pool for each to avoid reallocating every time.
var (
- outgoingTransitionContextPool = sync.Pool{
- New: func() any { return &outgoingTransitionContextImpl{} },
- }
- incomingTransitionContextPool = sync.Pool{
- New: func() any { return &incomingTransitionContextImpl{} },
- }
- bottomUpMutatorContextPool = sync.Pool{
- New: func() any { return &bottomUpMutatorContext{} },
- }
+ outgoingTransitionContextPool = pool.New[outgoingTransitionContextImpl]()
+ incomingTransitionContextPool = pool.New[incomingTransitionContextImpl]()
+ bottomUpMutatorContextPool = pool.New[bottomUpMutatorContext]()
)
type bottomUpMutatorContext struct {
@@ -291,10 +284,10 @@ type bottomUpMutatorContext struct {
// callers must immediately follow the call to this function with defer bottomUpMutatorContextPool.Put(mctx).
func bottomUpMutatorContextFactory(ctx blueprint.BottomUpMutatorContext, a Module,
- finalPhase bool) BottomUpMutatorContext {
+ finalPhase bool) *bottomUpMutatorContext {
moduleContext := a.base().baseModuleContextFactory(ctx)
- mctx := bottomUpMutatorContextPool.Get().(*bottomUpMutatorContext)
+ mctx := bottomUpMutatorContextPool.Get()
*mctx = bottomUpMutatorContext{
bp: ctx,
baseModuleContext: moduleContext,
diff --git a/android/transition.go b/android/transition.go
index e1aa891d1..0677ca1dd 100644
--- a/android/transition.go
+++ b/android/transition.go
@@ -197,7 +197,7 @@ func (a *androidTransitionMutatorAdapter) Split(ctx blueprint.BaseModuleContext)
func (a *androidTransitionMutatorAdapter) OutgoingTransition(bpctx blueprint.OutgoingTransitionContext,
sourceTransitionInfo blueprint.TransitionInfo) blueprint.TransitionInfo {
m := bpctx.Module().(Module)
- ctx := outgoingTransitionContextPool.Get().(*outgoingTransitionContextImpl)
+ ctx := outgoingTransitionContextPool.Get()
defer outgoingTransitionContextPool.Put(ctx)
*ctx = outgoingTransitionContextImpl{
archModuleContext: m.base().archModuleContextFactory(bpctx),
@@ -209,7 +209,7 @@ func (a *androidTransitionMutatorAdapter) OutgoingTransition(bpctx blueprint.Out
func (a *androidTransitionMutatorAdapter) IncomingTransition(bpctx blueprint.IncomingTransitionContext,
incomingTransitionInfo blueprint.TransitionInfo) blueprint.TransitionInfo {
m := bpctx.Module().(Module)
- ctx := incomingTransitionContextPool.Get().(*incomingTransitionContextImpl)
+ ctx := incomingTransitionContextPool.Get()
defer incomingTransitionContextPool.Put(ctx)
*ctx = incomingTransitionContextImpl{
archModuleContext: m.base().archModuleContextFactory(bpctx),