diff options
author | android-build-team Robot <android-build-team-robot@google.com> | 2019-05-25 23:12:58 +0000 |
---|---|---|
committer | android-build-team Robot <android-build-team-robot@google.com> | 2019-05-25 23:12:58 +0000 |
commit | df7c89d6216acabe59ca511514860397477eb70b (patch) | |
tree | 238b8d5a27ea2db1eab3138367cf8c09c0dbfbc6 | |
parent | f94d7c1462fed793a470daf5da3cf19de8288b1a (diff) | |
parent | 347e62aed01ccc8e5d2cd901eb150e29653a6d96 (diff) | |
download | update_engine-df7c89d6216acabe59ca511514860397477eb70b.tar.gz |
Snap for 5605988 from 347e62aed01ccc8e5d2cd901eb150e29653a6d96 to qt-releaseandroid-vts-10.0_r9android-vts-10.0_r8android-vts-10.0_r7android-vts-10.0_r6android-vts-10.0_r5android-vts-10.0_r4android-vts-10.0_r3android-vts-10.0_r2android-vts-10.0_r16android-vts-10.0_r15android-vts-10.0_r14android-vts-10.0_r13android-vts-10.0_r12android-vts-10.0_r11android-vts-10.0_r10android-vts-10.0_r1android-security-10.0.0_r75android-security-10.0.0_r74android-security-10.0.0_r73android-security-10.0.0_r72android-security-10.0.0_r71android-security-10.0.0_r70android-security-10.0.0_r69android-security-10.0.0_r68android-security-10.0.0_r67android-security-10.0.0_r66android-security-10.0.0_r65android-security-10.0.0_r64android-security-10.0.0_r63android-security-10.0.0_r62android-security-10.0.0_r61android-security-10.0.0_r60android-security-10.0.0_r59android-security-10.0.0_r58android-security-10.0.0_r57android-security-10.0.0_r56android-security-10.0.0_r55android-security-10.0.0_r54android-security-10.0.0_r53android-security-10.0.0_r52android-security-10.0.0_r51android-security-10.0.0_r50android-security-10.0.0_r49android-security-10.0.0_r48android-cts-10.0_r9android-cts-10.0_r8android-cts-10.0_r7android-cts-10.0_r6android-cts-10.0_r5android-cts-10.0_r4android-cts-10.0_r3android-cts-10.0_r2android-cts-10.0_r16android-cts-10.0_r15android-cts-10.0_r14android-cts-10.0_r13android-cts-10.0_r12android-cts-10.0_r11android-cts-10.0_r10android-cts-10.0_r1android-10.0.0_r6android-10.0.0_r5android-10.0.0_r47android-10.0.0_r46android-10.0.0_r4android-10.0.0_r3android-10.0.0_r2android-10.0.0_r17android-10.0.0_r11android-10.0.0_r10android-10.0.0_r1android10-tests-releaseandroid10-security-releaseandroid10-s3-releaseandroid10-s2-releaseandroid10-s1-releaseandroid10-release
Change-Id: I75d0f6e87cf053c834aabea103496b50cc70c375
-rw-r--r-- | update_boot_flags_action.cc | 17 | ||||
-rw-r--r-- | update_boot_flags_action.h | 2 |
2 files changed, 18 insertions, 1 deletions
diff --git a/update_boot_flags_action.cc b/update_boot_flags_action.cc index 97ef7f23..ee92ae0a 100644 --- a/update_boot_flags_action.cc +++ b/update_boot_flags_action.cc @@ -50,8 +50,11 @@ void UpdateBootFlagsAction::PerformAction() { } } -void UpdateBootFlagsAction::CompleteUpdateBootFlags(bool successful) { +void UpdateBootFlagsAction::TerminateProcessing() { is_running_ = false; +} + +void UpdateBootFlagsAction::CompleteUpdateBootFlags(bool successful) { if (!successful) { // We ignore the failure for now because if the updating boot flags is flaky // or has a bug in a specific release, then blocking the update can cause @@ -61,6 +64,18 @@ void UpdateBootFlagsAction::CompleteUpdateBootFlags(bool successful) { // TODO(ahassani): Add new error code metric for kUpdateBootFlagsFailed. LOG(ERROR) << "Updating boot flags failed, but ignoring its failure."; } + + // As the callback to MarkBootSuccessfulAsync, this function can still be + // called even after the current UpdateBootFlagsAction object get destroyed by + // the action processor. In this case, check the value of the static variable + // |is_running_| and skip executing the callback function. + if (!is_running_) { + LOG(INFO) << "UpdateBootFlagsAction is no longer running."; + return; + } + + is_running_ = false; + updated_boot_flags_ = true; processor_->ActionComplete(this, ErrorCode::kSuccess); } diff --git a/update_boot_flags_action.h b/update_boot_flags_action.h index afa2c3f1..892aab7b 100644 --- a/update_boot_flags_action.h +++ b/update_boot_flags_action.h @@ -30,6 +30,8 @@ class UpdateBootFlagsAction : public AbstractAction { void PerformAction() override; + void TerminateProcessing() override; + static std::string StaticType() { return "UpdateBootFlagsAction"; } std::string Type() const override { return StaticType(); } |