|
@@ -115,10 +115,11 @@ func (d *ChanDispatcher) dispatch() {
|
|
|
case msg, ok := <-d.MsgQueue:
|
|
|
if ok {
|
|
|
// 从工作管道池中尝试取出一个空闲(未阻塞)的工作管道,无空闲工作管道时阻塞
|
|
|
- jobChannel := <-d.WorkerPool
|
|
|
-
|
|
|
- // 将一条消息发送给当前工作管道
|
|
|
- jobChannel <- msg
|
|
|
+ jobChannel, isOpen := <-d.WorkerPool
|
|
|
+ if isOpen {
|
|
|
+ // 将一条消息发送给成功取出的工作管道
|
|
|
+ jobChannel <- msg
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|