Merge "health: stop spamming." am: d615af1e6d

Original change: https://android-review.googlesource.com/c/platform/hardware/interfaces/+/1764905

Change-Id: I60af39724e5d6f27935b8fa326cef75aa0144725
This commit is contained in:
Yifan Hong
2021-07-14 00:03:17 +00:00
committed by Automerger Merge Worker

View File

@@ -35,10 +35,9 @@ namespace health {
namespace V2_1 {
namespace implementation {
bool IsDeadObjectLogged(const Return<void>& ret) {
bool IsDeadObject(const Return<void>& ret) {
if (ret.isOk()) return false;
if (ret.isDeadObject()) return true;
LOG(ERROR) << "Cannot call healthInfoChanged* on callback: " << ret.description();
return false;
}
@@ -77,7 +76,7 @@ Return<Result> BinderHealth::registerCallback(const sp<V2_0::IHealthInfoCallback
return;
}
auto ret = wrapped->Notify(health_info);
if (IsDeadObjectLogged(ret)) {
if (IsDeadObject(ret)) {
// Remove callback reference.
std::lock_guard<decltype(callbacks_lock_)> lock(callbacks_lock_);
auto it = std::find_if(callbacks_.begin(), callbacks_.end(),
@@ -133,7 +132,7 @@ void BinderHealth::OnHealthInfoChanged(const HealthInfo& health_info) {
std::unique_lock<decltype(callbacks_lock_)> lock(callbacks_lock_);
for (auto it = callbacks_.begin(); it != callbacks_.end();) {
auto ret = (*it)->Notify(health_info);
if (IsDeadObjectLogged(ret)) {
if (IsDeadObject(ret)) {
it = callbacks_.erase(it);
} else {
++it;