From 1e6a8964ccef587262d03979941a8434e4852657 Mon Sep 17 00:00:00 2001 From: xia-chu <771730766@qq.com> Date: Wed, 17 Dec 2025 21:42:25 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8DWebRtcSession=E5=AF=B9?= =?UTF-8?q?=E8=B1=A1=E5=8F=AF=E8=83=BD=E6=B3=84=E9=9C=B2=E7=9A=84bug=20(#4?= =?UTF-8?q?596)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 3rdpart/ZLToolKit | 2 +- webrtc/WebRtcSession.cpp | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/3rdpart/ZLToolKit b/3rdpart/ZLToolKit index 493d14e1..b8c91595 160000 --- a/3rdpart/ZLToolKit +++ b/3rdpart/ZLToolKit @@ -1 +1 @@ -Subproject commit 493d14e1682cc0c79e72b3893dd98f865d45b8e9 +Subproject commit b8c91595f5e49cc8d4603eac577aee92b5c7ec8e diff --git a/webrtc/WebRtcSession.cpp b/webrtc/WebRtcSession.cpp index 96ff55b5..bbbedd92 100644 --- a/webrtc/WebRtcSession.cpp +++ b/webrtc/WebRtcSession.cpp @@ -69,10 +69,11 @@ void WebRtcSession::onRecv_l(const char *data, size_t len) { auto sock = Socket::createSocket(transport->getPoller(), false); // 1、克隆socket(fd不变),切换poller线程到WebRtcTransport所在线程 [AUTO-TRANSLATED:f930bfab] // 1. Clone socket (fd remains unchanged), switch poller thread to the thread where WebRtcTransport is located - sock->cloneSocket(*(getSock())); + auto on_complete = sock->cloneSocket(*(getSock())); auto server = _server; std::string str(data, len); - sock->getPoller()->async([sock, server, str](){ + // on_complete在创建WebRtcSession后才析构(才开始网络事件监听) + sock->getPoller()->async([sock, server, str, on_complete](){ auto strong_server = server.lock(); if (strong_server) { auto session = static_pointer_cast(strong_server->createSession(sock));