From 9cc611c54786db8f37a396687b620f7841d788fa Mon Sep 17 00:00:00 2001 From: wangwenjun Date: Tue, 19 Apr 2022 10:00:35 +0800 Subject: [PATCH] join error: add joinable Signed-off-by: wangwenjun --- .../decoder/src/image_sink_decoder.cpp | 4 +++- .../screensourcetrans/src/screen_source_trans.cpp | 8 ++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/services/screentransport/screensinkprocessor/decoder/src/image_sink_decoder.cpp b/services/screentransport/screensinkprocessor/decoder/src/image_sink_decoder.cpp index a210198f..6f5d6543 100644 --- a/services/screentransport/screensinkprocessor/decoder/src/image_sink_decoder.cpp +++ b/services/screentransport/screensinkprocessor/decoder/src/image_sink_decoder.cpp @@ -279,7 +279,9 @@ int32_t ImageSinkDecoder::StopInputThread() { DHLOGI("%s: StopInputThread.", LOG_TAG); isDecoderReady_ = false; - decodeThread_.join(); + if (decodeThread_.joinable()) { + decodeThread_.join(); + } std::lock_guard dataLock(dataMutex_); while (!bufferIndexQueue_.empty()) { bufferIndexQueue_.pop(); diff --git a/services/screentransport/screensourcetrans/src/screen_source_trans.cpp b/services/screentransport/screensourcetrans/src/screen_source_trans.cpp index 6d2ef574..0d0133e9 100644 --- a/services/screentransport/screensourcetrans/src/screen_source_trans.cpp +++ b/services/screentransport/screensourcetrans/src/screen_source_trans.cpp @@ -121,7 +121,9 @@ int32_t ScreenSourceTrans::Stop() stopStatus = false; } isChannelReady_ = false; - sendDataThread_.join(); + if (sendDataThread_.joinable()) { + sendDataThread_.join(); + } if (!stopStatus) { DHLOGE("%s: Stop source trans failed.", LOG_TAG); @@ -309,7 +311,9 @@ void ScreenSourceTrans::OnSessionClosed() { DHLOGI("%s: OnChannelSessionClosed.", LOG_TAG); isChannelReady_ = false; - sendDataThread_.join(); + if (sendDataThread_.joinable()) { + sendDataThread_.join(); + } std::shared_ptr callback = transCallback_.lock(); if (!callback) { -- Gitee