}
// 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()
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 {
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)
}
}
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()
}
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)
}
}