From 64544e069d5e91d8da5bbc475fffe18c7fdb7a7a Mon Sep 17 00:00:00 2001 From: kercylan98 Date: Sat, 21 Oct 2023 18:19:31 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=20concurrent.Pool=20?= =?UTF-8?q?=E5=8F=AF=E9=80=89=E9=A1=B9=E6=97=A0=E6=B3=95=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- utils/concurrent/pool.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/utils/concurrent/pool.go b/utils/concurrent/pool.go index 53d3ff7..b3aecb6 100644 --- a/utils/concurrent/pool.go +++ b/utils/concurrent/pool.go @@ -10,12 +10,15 @@ import ( // NewPool 创建一个线程安全的对象缓冲池 // - 通过 Get 获取一个对象,如果缓冲区内存在可用对象则直接返回,否则新建一个进行返回 // - 通过 Release 将使用完成的对象放回缓冲区,超出缓冲区大小的对象将被放弃 -func NewPool[T any](bufferSize int, generator func() T, releaser func(data T)) *Pool[T] { +func NewPool[T any](bufferSize int, generator func() T, releaser func(data T), options ...PoolOption[T]) *Pool[T] { pool := &Pool[T]{ bufferSize: bufferSize, generator: generator, releaser: releaser, } + for _, option := range options { + option(pool) + } for i := 0; i < bufferSize; i++ { pool.put(generator()) }