From 3bfc4f2ebd49ec5c862a86adbb83c99949aa7ae2 Mon Sep 17 00:00:00 2001 From: Andy Pan Date: Thu, 24 Oct 2019 22:32:12 +0800 Subject: [PATCH] sync.Pool opt --- pool.go | 12 +++++------- pool_func.go | 12 +++++------- 2 files changed, 10 insertions(+), 14 deletions(-) diff --git a/pool.go b/pool.go index 5e13c72..cb6978b 100644 --- a/pool.go +++ b/pool.go @@ -115,13 +115,11 @@ func NewPool(size int, options ...Option) (*Pool, error) { lock: internal.NewSpinLock(), options: opts, } - p.workerCache = sync.Pool{ - New: func() interface{} { - return &goWorker{ - pool: p, - task: make(chan func(), workerChanCap), - } - }, + p.workerCache.New = func() interface{} { + return &goWorker{ + pool: p, + task: make(chan func(), workerChanCap), + } } if p.options.PreAlloc { p.workers = newWorkerArray(loopQueueType, size) diff --git a/pool_func.go b/pool_func.go index ed422e5..e062ae8 100644 --- a/pool_func.go +++ b/pool_func.go @@ -137,13 +137,11 @@ func NewPoolWithFunc(size int, pf func(interface{}), options ...Option) (*PoolWi lock: internal.NewSpinLock(), options: opts, } - p.workerCache = sync.Pool{ - New: func() interface{} { - return &goWorkerWithFunc{ - pool: p, - args: make(chan interface{}, workerChanCap), - } - }, + p.workerCache.New = func() interface{} { + return &goWorkerWithFunc{ + pool: p, + args: make(chan interface{}, workerChanCap), + } } if p.options.PreAlloc { p.workers = make([]*goWorkerWithFunc, 0, size)