diff --git a/services/audiotransport/receiverengine/src/av_receiver_engine_adapter.cpp b/services/audiotransport/receiverengine/src/av_receiver_engine_adapter.cpp index 2fc07ea8ddc702869fb91b790feeefd9593712ab..a92fee7a6170370af2e9fbe89b65793f7b0856b9 100644 --- a/services/audiotransport/receiverengine/src/av_receiver_engine_adapter.cpp +++ b/services/audiotransport/receiverengine/src/av_receiver_engine_adapter.cpp @@ -120,8 +120,9 @@ int32_t AVTransReceiverAdapter::RegisterAdapterCallback(const std::shared_ptr lock(chnCreatedMtx_); - auto status = chnCreatedCondVar_.wait_for(lock, std::chrono::milliseconds(WAIT_TIMEOUT_MS)); - if (status == std::cv_status::timeout) { + auto status = chnCreatedCondVar_.wait_for(lock, std::chrono::milliseconds(WAIT_TIMEOUT_MS), + [this]() { return chnCreateSuccess_.load(); }); + if (!status) { DHLOGI("Wait timeout."); return ERR_DH_AUDIO_SA_WAIT_TIMEOUT; } diff --git a/services/audiotransport/senderengine/src/av_sender_engine_adapter.cpp b/services/audiotransport/senderengine/src/av_sender_engine_adapter.cpp index 85dca86af032ee2203bfce7c4a0290204e0bffb4..c922866140dc147cb0d346b4a95c5af7ac2e9694 100644 --- a/services/audiotransport/senderengine/src/av_sender_engine_adapter.cpp +++ b/services/audiotransport/senderengine/src/av_sender_engine_adapter.cpp @@ -133,8 +133,9 @@ int32_t AVTransSenderAdapter::RegisterAdapterCallback(const std::shared_ptr lock(chnCreatedMtx_); - auto status = chnCreatedCondVar_.wait_for(lock, std::chrono::milliseconds(WAIT_TIMEOUT_MS)); - if (status == std::cv_status::timeout) { + auto status = chnCreatedCondVar_.wait_for(lock, std::chrono::milliseconds(WAIT_TIMEOUT_MS), + [this]() { return chnCreateSuccess_.load(); }); + if (!status) { DHLOGI("Wait timeout."); return ERR_DH_AUDIO_SA_WAIT_TIMEOUT; }