From 6a315917163d68a5e48a40809a420f44b2ec5a15 Mon Sep 17 00:00:00 2001
From: 雾聪 <wucong.lyb@alibaba-inc.com>
Date: 星期四, 10 八月 2023 15:05:12 +0800
Subject: [PATCH] Merge branch 'main' of https://github.com/alibaba-damo-academy/FunASR into main
---
funasr/runtime/websocket/websocket-server-2pass.cpp | 13 +++++++++----
1 files changed, 9 insertions(+), 4 deletions(-)
diff --git a/funasr/runtime/websocket/websocket-server-2pass.cpp b/funasr/runtime/websocket/websocket-server-2pass.cpp
index 75312a3..b41c5c9 100644
--- a/funasr/runtime/websocket/websocket-server-2pass.cpp
+++ b/funasr/runtime/websocket/websocket-server-2pass.cpp
@@ -81,6 +81,10 @@
FUNASR_HANDLE& tpass_online_handle) {
// lock for each connection
scoped_lock guard(thread_lock);
+ if(!tpass_online_handle){
+ LOG(INFO) << "tpass_online_handle is free, return";
+ return;
+ }
FUNASR_RESULT Result = nullptr;
int asr_mode_ = 2;
if (msg.contains("mode")) {
@@ -180,7 +184,7 @@
std::make_shared<FUNASR_MESSAGE>(); // put a new data vector for new
// connection
data_msg->samples = std::make_shared<std::vector<char>>();
- data_msg->thread_lock = new websocketpp::lib::mutex();
+ data_msg->thread_lock = std::make_shared<websocketpp::lib::mutex>();
data_msg->msg = nlohmann::json::parse("{}");
data_msg->msg["wav_format"] = "pcm";
@@ -199,7 +203,7 @@
websocketpp::connection_hdl hdl,
std::map<websocketpp::connection_hdl, std::shared_ptr<FUNASR_MESSAGE>,
std::owner_less<websocketpp::connection_hdl>>& data_map) {
- // return;
+
std::shared_ptr<FUNASR_MESSAGE> data_msg = nullptr;
auto it_data = data_map.find(hdl);
if (it_data != data_map.end()) {
@@ -215,8 +219,9 @@
FunTpassOnlineUninit(data_msg->tpass_online_handle);
data_msg->tpass_online_handle = nullptr;
}
+
+
guard_decoder.unlock();
- delete data_msg->thread_lock;
data_map.erase(hdl); // remove data vector when connection is closed
}
@@ -270,7 +275,7 @@
std::shared_ptr<std::vector<char>> sample_data_p = msg_data->samples;
std::shared_ptr<std::vector<std::vector<std::string>>> punc_cache_p =
msg_data->punc_cache;
- websocketpp::lib::mutex* thread_lock_p = msg_data->thread_lock;
+ std::shared_ptr<websocketpp::lib::mutex> thread_lock_p = msg_data->thread_lock;
lock.unlock();
--
Gitblit v1.9.1