]> 127.0.0.1 Git - part/.git/commitdiff
Improve v0.23.0
authorqydysky <32743305+qydysky@users.noreply.github.com>
Tue, 28 Feb 2023 15:05:01 +0000 (23:05 +0800)
committerqydysky <32743305+qydysky@users.noreply.github.com>
Tue, 28 Feb 2023 15:05:01 +0000 (23:05 +0800)
pool/Pool.go

index 594a1de535dd0aa4e5a0886c888c2f91efc32e6b..c131c0eb8fb139c20d1e1b4fb5dbbf1d5a40e556 100644 (file)
@@ -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) {