diff --git a/server/server.go b/server/server.go index d9e0362..eab2000 100644 --- a/server/server.go +++ b/server/server.go @@ -13,7 +13,6 @@ import ( "github.com/kercylan98/minotaur/utils/str" "github.com/kercylan98/minotaur/utils/super" "github.com/kercylan98/minotaur/utils/timer" - "github.com/kercylan98/minotaur/utils/times" "github.com/panjf2000/ants/v2" "github.com/panjf2000/gnet" "github.com/panjf2000/gnet/pkg/logging" @@ -319,13 +318,9 @@ func (slf *Server) Run(addr string) error { conn.Close(e) } }() - var deadline = times.Zero - if slf.websocketReadDeadline > 0 { - deadline = time.Now().Add(slf.websocketReadDeadline) - } for !conn.IsClosed() { if slf.websocketReadDeadline > 0 { - if err := ws.SetReadDeadline(deadline); err != nil { + if err := ws.SetReadDeadline(time.Now().Add(slf.websocketReadDeadline)); err != nil { panic(err) } } diff --git a/utils/concurrent/pool.go b/utils/concurrent/pool.go index d50f8d3..e7d3e9a 100644 --- a/utils/concurrent/pool.go +++ b/utils/concurrent/pool.go @@ -71,7 +71,13 @@ func (slf *Pool[T]) IsClose() bool { } func (slf *Pool[T]) Release(data T) { + slf.mutex.Lock() + if slf.releaser == nil { + slf.mutex.Unlock() + return + } slf.releaser(data) + slf.mutex.Unlock() slf.put(data) }