fix bug of websocket lock blocking

This commit is contained in:
雾聪 2023-11-30 19:08:38 +08:00
parent 9fa2b2128d
commit 467186eec4
2 changed files with 7 additions and 2 deletions

View File

@ -98,8 +98,8 @@ void WebSocketServer::do_decoder(
std::string wav_format,
FUNASR_HANDLE& tpass_online_handle) {
// lock for each connection
scoped_lock guard(thread_lock);
if(!tpass_online_handle){
scoped_lock guard(thread_lock);
LOG(INFO) << "tpass_online_handle is free, return";
msg["access_num"]=(int)msg["access_num"]-1;
return;
@ -128,10 +128,12 @@ void WebSocketServer::do_decoder(
hotwords_embedding, itn);
} else {
scoped_lock guard(thread_lock);
msg["access_num"]=(int)msg["access_num"]-1;
return;
}
} catch (std::exception const& e) {
scoped_lock guard(thread_lock);
LOG(ERROR) << e.what();
msg["access_num"]=(int)msg["access_num"]-1;
return;
@ -162,10 +164,12 @@ void WebSocketServer::do_decoder(
wav_format, (ASR_TYPE)asr_mode_,
hotwords_embedding, itn);
} else {
scoped_lock guard(thread_lock);
msg["access_num"]=(int)msg["access_num"]-1;
return;
}
} catch (std::exception const& e) {
scoped_lock guard(thread_lock);
LOG(ERROR) << e.what();
msg["access_num"]=(int)msg["access_num"]-1;
return;
@ -209,6 +213,7 @@ void WebSocketServer::do_decoder(
} catch (std::exception const& e) {
std::cerr << "Error: " << e.what() << std::endl;
}
scoped_lock guard(thread_lock);
msg["access_num"]=(int)msg["access_num"]-1;
}

View File

@ -68,7 +68,6 @@ void WebSocketServer::do_decoder(const std::vector<char>& buffer,
int audio_fs,
std::string wav_format,
FUNASR_DEC_HANDLE& decoder_handle) {
scoped_lock guard(thread_lock);
try {
int num_samples = buffer.size(); // the size of the buf
@ -130,6 +129,7 @@ void WebSocketServer::do_decoder(const std::vector<char>& buffer,
} catch (std::exception const& e) {
std::cerr << "Error: " << e.what() << std::endl;
}
scoped_lock guard(thread_lock);
msg["access_num"]=(int)msg["access_num"]-1;
}