From ddeaaf7d77026763b03c8310ffa0eef25e26d723 Mon Sep 17 00:00:00 2001 From: duanhf2012 <6549168@qq.com> Date: Tue, 11 Apr 2023 10:29:06 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96concurrent=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- concurrent/concurrent.go | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/concurrent/concurrent.go b/concurrent/concurrent.go index 08c5826..227089c 100644 --- a/concurrent/concurrent.go +++ b/concurrent/concurrent.go @@ -54,16 +54,6 @@ func (c *Concurrent) AsyncDoByQueue(queueId int64, fn func() bool, cb func(err e return } - if len(c.tasks) > cap(c.tasks) { - log.SError("tasks channel is full") - if cb != nil { - c.pushAsyncDoCallbackEvent(func(err error) { - cb(errors.New("tasks channel is full")) - }) - } - return - } - if fn == nil { c.pushAsyncDoCallbackEvent(cb) return @@ -75,6 +65,14 @@ func (c *Concurrent) AsyncDoByQueue(queueId int64, fn func() bool, cb func(err e select { case c.tasks <- task{queueId, fn, cb}: + default: + log.SError("tasks channel is full") + if cb != nil { + c.pushAsyncDoCallbackEvent(func(err error) { + cb(errors.New("tasks channel is full")) + }) + } + return } }