From 5237215194185ea0c2efbc91057c38e6a3d39883 Mon Sep 17 00:00:00 2001 From: houpengtao Date: Thu, 30 Mar 2023 12:53:04 +0800 Subject: [PATCH] =?UTF-8?q?=E5=87=8F=E5=B0=8F=E6=9D=A1=E4=BB=B6=E9=94=81?= =?UTF-8?q?=E7=9A=84=E8=8C=83=E5=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: houpengtao --- frameworks/native/consumer/src/datashare_connection.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/frameworks/native/consumer/src/datashare_connection.cpp b/frameworks/native/consumer/src/datashare_connection.cpp index 8905314a..58e11e2d 100644 --- a/frameworks/native/consumer/src/datashare_connection.cpp +++ b/frameworks/native/consumer/src/datashare_connection.cpp @@ -35,6 +35,7 @@ constexpr int WAIT_TIME = 1; void DataShareConnection::OnAbilityConnectDone( const AppExecFwk::ElementName &element, const sptr &remoteObject, int resultCode) { + LOG_INFO("on connect done, uri:%{public}s, ret=%{public}d", uri_.ToString().c_str(), resultCode); if (remoteObject == nullptr) { LOG_ERROR("remote is nullptr"); return; @@ -42,7 +43,6 @@ void DataShareConnection::OnAbilityConnectDone( std::unique_lock lock(condition_.mutex); SetDataShareProxy(new (std::nothrow) DataShareProxy(remoteObject)); condition_.condition.notify_all(); - LOG_INFO("on connect done, uri:%{public}s, ret=%{public}d", uri_.ToString().c_str(), resultCode); } /** @@ -82,12 +82,12 @@ bool DataShareConnection::ConnectDataShareExtAbility(const Uri &uri, const sptr< } else { want.SetUri(uri_); } - std::unique_lock lock(condition_.mutex); ErrCode ret = AAFwk::AbilityManagerClient::GetInstance()->ConnectAbility(want, this, token); if (ret != ERR_OK) { LOG_ERROR("connect ability failed, ret = %{public}d", ret); return false; } + std::unique_lock lock(condition_.mutex); if (condition_.condition.wait_for(lock, std::chrono::seconds(WAIT_TIME), [this] { return dataShareProxy_ != nullptr; })) { LOG_INFO("connect ability ended successfully"); @@ -104,12 +104,12 @@ void DataShareConnection::DisconnectDataShareExtAbility() if (dataShareProxy_ == nullptr) { return; } - std::unique_lock lock(condition_.mutex); ErrCode ret = AAFwk::AbilityManagerClient::GetInstance()->DisconnectAbility(this); if (ret != ERR_OK) { LOG_ERROR("disconnect ability failed, ret = %{public}d", ret); return; } + std::unique_lock lock(condition_.mutex); if (condition_.condition.wait_for(lock, std::chrono::seconds(WAIT_TIME), [this] { return dataShareProxy_ == nullptr; })) { LOG_INFO("disconnect ability successfully"); -- Gitee