From: qydysky <32743305+qydysky@users.noreply.github.com> Date: Tue, 28 Feb 2023 15:05:01 +0000 (+0800) Subject: Improve X-Git-Tag: v0.23.0 X-Git-Url: http://127.0.0.1:8081/?a=commitdiff_plain;h=1d70dade4ce3a128cdd6908cc375a2049bdbccb2;p=part%2F.git Improve --- diff --git a/pool/Pool.go b/pool/Pool.go index 594a1de..c131c0e 100644 --- a/pool/Pool.go +++ b/pool/Pool.go @@ -7,7 +7,7 @@ import ( type Buf[T any] struct { maxsize int newF func() *T - validF func(*T) bool + inUse func(*T) bool reuseF func(*T) *T poolF func(*T) *T buf []*T @@ -18,17 +18,17 @@ type Buf[T any] struct { // // NewF: func() *T 新值 // -// ValidF func(*T) (inUse bool) 是否可重用(是否还在使用) +// InUse func(*T) bool 是否在使用 // // ReuseF func(*T) *T 重用前处理 // // PoolF func(*T) *T 入池前处理 // // maxsize int 池最大数量 -func New[T any](NewF func() *T, ValidF func(*T) (inUse bool), ReuseF func(*T) *T, PoolF func(*T) *T, maxsize int) *Buf[T] { +func New[T any](NewF func() *T, InUse func(*T) bool, ReuseF func(*T) *T, PoolF func(*T) *T, maxsize int) *Buf[T] { t := new(Buf[T]) t.newF = NewF - t.validF = ValidF + t.inUse = InUse t.reuseF = ReuseF t.poolF = PoolF t.maxsize = maxsize @@ -40,7 +40,7 @@ func (t *Buf[T]) Trim() { defer t.Unlock() for i := 0; i < len(t.buf); i++ { - if !t.validF(t.buf[i]) { + if !t.inUse(t.buf[i]) { t.buf[i] = nil t.buf = append(t.buf[:i], t.buf[i+1:]...) i-- @@ -53,7 +53,7 @@ func (t *Buf[T]) Get() *T { defer t.Unlock() for i := 0; i < len(t.buf); i++ { - if !t.validF(t.buf[i]) { + if !t.inUse(t.buf[i]) { return t.reuseF(t.buf[i]) } } @@ -71,7 +71,7 @@ func (t *Buf[T]) Put(item ...*T) { var cu = 0 for i := 0; i < len(t.buf); i++ { - if !t.validF(t.buf[i]) { + if !t.inUse(t.buf[i]) { t.buf[i] = t.poolF(item[cu]) cu++ if cu >= len(item) {