瀏覽代碼

fix: close channel

lijian 2 年之前
父節點
當前提交
9f127689fa
共有 1 個文件被更改,包括 7 次插入2 次删除
  1. 7 2
      pkg/ruleEngine/mailbox.go

+ 7 - 2
pkg/ruleEngine/mailbox.go

@@ -4,6 +4,7 @@ import (
 	"github.com/gogf/gf/container/gqueue"
 	"sparrow/pkg/protocol"
 	"sparrow/pkg/server"
+	"sync"
 	"sync/atomic"
 )
 
@@ -18,6 +19,8 @@ type MailBox struct {
 	busyState              int32
 	readySate              int32
 	throughPut             int // 处理的吞吐量
+	closed                 bool
+	mu                     sync.Mutex
 }
 
 const (
@@ -206,8 +209,10 @@ func (m *MailBox) BroadcastChildren(msg protocol.ActorMsg) error {
 }
 
 func (m *MailBox) destroy() error {
-	//m.highPriorityMessages.Close()
-	// m.normalPriorityMessages.Close()
+	m.mu.Lock()
+	defer m.mu.Unlock()
+	m.highPriorityMessages.Close()
+	m.normalPriorityMessages.Close()
 	m.setReadyStat(NOTREADY)
 	if err := m.actor.Destroy(); err != nil {
 		server.Log.Warnf("Failed to destroy actor :%s, err :%s", m.id, err.Error())