From c60b7b3a543051dd1dea5137b5b0ec6addce9bf1 Mon Sep 17 00:00:00 2001 From: qydysky Date: Mon, 1 Jan 2024 22:56:07 +0800 Subject: [PATCH] 1 --- pool/Pool.go | 14 +++++++++++++- pool/Pool_test.go | 12 ++++++------ 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/pool/Pool.go b/pool/Pool.go index 78d33c4..a679b81 100644 --- a/pool/Pool.go +++ b/pool/Pool.go @@ -42,7 +42,19 @@ func New[T any](NewF func() *T, InUse func(*T) bool, ReuseF func(*T) *T, PoolF f } // states[] 0:pooled, 1:nopooled, 2:inuse, 3:nouse, 4:sum, 5:getPerSec +// +// Deprecated: s func (t *Buf[T]) PoolState() (states []any) { + state := t.State() + return []any{state.pooled, state.nopooled, state.inuse, state.nouse, state.sum, state.getPerSec} +} + +type BufState struct { + pooled, nopooled, inuse, nouse, sum int + getPerSec float64 +} + +func (t *Buf[T]) State() BufState { t.l.RLock() defer t.l.RUnlock() @@ -68,7 +80,7 @@ func (t *Buf[T]) PoolState() (states []any) { getPerSec += t.getPerSec / diff } - return []any{pooled, nopooled, inuse, nouse, sum, getPerSec} + return BufState{pooled, nopooled, inuse, nouse, sum, getPerSec} } func (t *Buf[T]) Get() *T { diff --git a/pool/Pool_test.go b/pool/Pool_test.go index b9b718a..ee68142 100644 --- a/pool/Pool_test.go +++ b/pool/Pool_test.go @@ -38,8 +38,8 @@ func Test1(t *testing.T) { b.Get() } time.Sleep(time.Millisecond * 1100) - if math.Abs(b.PoolState()[5].(float64)-7.5) > 2.5 { - t.Fatal(b.PoolState()[5]) + if math.Abs(b.State().getPerSec-7.5) > 2.5 { + t.Fatal(b.State().getPerSec) } } @@ -72,7 +72,7 @@ func TestXxx(t *testing.T) { var c2p = uintptr(unsafe.Pointer(c2)) c2.d = append(c2.d, []byte("2")...) - if c1p == c2p || bytes.Equal(c1.d, c2.d) || b.PoolState()[2] != 0 || b.PoolState()[4] != 0 { + if c1p == c2p || bytes.Equal(c1.d, c2.d) || b.State().inuse != 0 || b.State().sum != 0 { t.Fatal() } @@ -81,13 +81,13 @@ func TestXxx(t *testing.T) { var c3 = b.Get() var c3p = uintptr(unsafe.Pointer(c3)) - if c1p == c3p || len(c1.d) == 0 || b.PoolState()[2] != 0 || b.PoolState()[4] != 0 { + if c1p == c3p || len(c1.d) == 0 || b.State().inuse != 0 || b.State().sum != 0 { t.Fatal() } b.Put(c1) - if len(c1.d) == 0 || b.PoolState()[2] != 0 || b.PoolState()[4] != 1 { - t.Fatal(len(c1.d) != 0, b.PoolState()[2] != 0, b.PoolState()[4] != 1) + if len(c1.d) == 0 || b.State().inuse != 0 || b.State().sum != 1 { + t.Fatal(len(c1.d) != 0, b.State().inuse != 0, b.State().sum != 1) } } -- 2.39.2