Merge "health: stop spamming."

This commit is contained in:
Yifan Hong
2021-07-13 23:45:47 +00:00
committed by Gerrit Code Review

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;