marion 5 tahun lalu
induk
melakukan
59102e2066
1 mengubah file dengan 5 tambahan dan 4 penghapusan
  1. 5 4
      utils/queue/chan_pool.go

+ 5 - 4
utils/queue/chan_pool.go

@@ -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
+					}
 				}
 			}
 		}