@@ -120,25 +120,10 @@ type eval struct {
120120}
121121
122122type (
123- evp struct {
124- pool sync.Pool
125- }
126- evfp struct {
127- pool sync.Pool
128- }
129- evbp struct {
130- pool sync.Pool
131- }
123+ evfp struct { pool sync.Pool }
124+ evbp struct { pool sync.Pool }
132125)
133126
134- func (ep * evp ) Put (e * eval ) {
135- ep .pool .Put (e )
136- }
137-
138- func (ep * evp ) Get () * eval {
139- return ep .pool .Get ().(* eval )
140- }
141-
142127func (ep * evfp ) Put (e * evalFunc ) {
143128 if e != nil {
144129 e .e , e .terms , e .ir = nil , nil , nil
@@ -162,13 +147,9 @@ func (ep *evbp) Get() *evalBuiltin {
162147}
163148
164149var (
165- evalPool = & evp {
166- pool : sync.Pool {
167- New : func () any {
168- return & eval {}
169- },
170- },
171- }
150+ evalPool = util .NewSyncPool [eval ]()
151+ deecPool = util .NewSyncPool [deferredEarlyExitContainer ]()
152+ resolverPool = util .NewSyncPool [evalResolver ]()
172153 evalFuncPool = & evfp {
173154 pool : sync.Pool {
174155 New : func () any {
@@ -1688,7 +1669,7 @@ func (e *eval) getRules(ref ast.Ref, args []*ast.Term) (*ast.IndexResult, error)
16881669 return nil , nil
16891670 }
16901671
1691- resolver := resolverPool .Get ().( * evalResolver )
1672+ resolver := resolverPool .Get ()
16921673 defer func () {
16931674 resolver .e = nil
16941675 resolver .args = nil
@@ -1743,14 +1724,6 @@ type evalResolver struct {
17431724 args []* ast.Term
17441725}
17451726
1746- var (
1747- resolverPool = sync.Pool {
1748- New : func () any {
1749- return & evalResolver {}
1750- },
1751- }
1752- )
1753-
17541727func (e * evalResolver ) Resolve (ref ast.Ref ) (ast.Value , error ) {
17551728 e .e .instr .startTimer (evalOpResolve )
17561729
@@ -2439,12 +2412,6 @@ func (dc *deferredEarlyExitContainer) copyError() *deferredEarlyExitError {
24392412 return & cpy
24402413}
24412414
2442- var deecPool = sync.Pool {
2443- New : func () any {
2444- return & deferredEarlyExitContainer {}
2445- },
2446- }
2447-
24482415type evalTree struct {
24492416 e * eval
24502417 bindings * bindings
@@ -2530,7 +2497,7 @@ func (e evalTree) enumerate(iter unifyIterator) error {
25302497 return err
25312498 }
25322499
2533- dc := deecPool .Get ().( * deferredEarlyExitContainer )
2500+ dc := deecPool .Get ()
25342501 dc .deferred = nil
25352502 defer deecPool .Put (dc )
25362503
0 commit comments