fix: 关闭sink, 异步发包协程未退出

This commit is contained in:
ydajiang
2025-04-12 15:14:28 +08:00
parent 4c11d29bcb
commit c5036194c2

View File

@@ -136,6 +136,8 @@ func (s *BaseSink) SetID(id SinkID) {
} }
func (s *BaseSink) doAsyncWrite() { func (s *BaseSink) doAsyncWrite() {
defer s.existed.Store(true)
for { for {
select { select {
case <-s.cancelCtx.Done(): case <-s.cancelCtx.Done():
@@ -145,8 +147,6 @@ func (s *BaseSink) doAsyncWrite() {
break break
} }
} }
s.existed.Store(true)
} }
func (s *BaseSink) EnableAsyncWriteMode(queueSize int) { func (s *BaseSink) EnableAsyncWriteMode(queueSize int) {
@@ -263,6 +263,10 @@ func (s *BaseSink) Close() {
s.Conn.Close() s.Conn.Close()
s.Conn = nil s.Conn = nil
} }
if s.cancelCtx != nil {
s.cancelFunc()
}
}() }()
// 已经关闭或Sink未添加到任何队列, 不做处理 // 已经关闭或Sink未添加到任何队列, 不做处理