commit | cbcd403eb648761dfba341a3293b01523cfccb36 | [log] [tgz] |
---|---|---|
author | Daniel Cheng <dcheng@chromium.org> | Fri May 10 15:41:57 2024 |
committer | Copybara-Service <copybara-worker@google.com> | Fri May 10 16:19:24 2024 |
tree | 04d9e9f1e883f6edb6226c7475bb6e4f9941c223 | |
parent | 5a2f62c5fb869cbbb237009799bc84baa58733b2 [diff] |
Use absl::Cleanup for job cleanup in policy::CloudPolicyClient absl::Cleanup is a helper to run arbitrary code when the absl::Cleanup object goes out of scope, which is useful for executing cleanup code or ensuring something always runs. The current //base equivalent is base::ScopedClosureRunner, which executes a base::OnceClosure when the runner object goes out of scope. Compared to base::ScopedClosureRunner, there are several benefits to using absl::Cleanup: - works with capturing lambdas, which are often much more concise than base::BindOnce() - requires no heap allocations - less impact on binary size since absl::Cleanup instantiates fewer templates This CL is part of a project-wide cleanup to migrate to absl::Cleanup where appropriate. The general criteria for migrating usages of base::ScopedClosureRunner: - The cleanup scoper must not escape block scope, e.g. it is not returned from the function, passed to another function, or bound into a callback. - The cleanup scoper's type does not need to be named, e.g. the scoper construction can use CTAD: absl::Cleanup run_at_exit = [] { RestoreSettings(original); }; Note: having to write absl::Cleanup<decltype(lambda)> as a type is often a sign that absl::Cleanup is not a good fit for how the code is currently structured. - The cleanup scoper is not simply running a base::OnceClosure. Bug: 339492604 Change-Id: Ia3a8363949afd41f3f31976fe00e657fdca454d0 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5531158 Reviewed-by: Anqing Zhao <anqing@chromium.org> Commit-Queue: Daniel Cheng <dcheng@chromium.org> Cr-Commit-Position: refs/heads/main@{#1299261} NOKEYCHECK=True GitOrigin-RevId: 0ae48898065e70e990951f6107718c6d073697dd
Please refer to the documentation for more information.