From 18175c71edf90eeb73c6f47745b2bad32e4a1478 Mon Sep 17 00:00:00 2001 From: bunnei Date: Sun, 31 Jan 2021 16:54:10 -0800 Subject: common: scope_exit: Add a cancellable ScopeExit macro. --- src/common/scope_exit.h | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/common/scope_exit.h b/src/common/scope_exit.h index fa46cb394..35dac3a8f 100644 --- a/src/common/scope_exit.h +++ b/src/common/scope_exit.h @@ -49,3 +49,9 @@ ScopeExitHelper ScopeExit(Func&& func) { * \endcode */ #define SCOPE_EXIT(body) auto CONCAT2(scope_exit_helper_, __LINE__) = detail::ScopeExit([&]() body) + +/** + * This macro is similar to SCOPE_EXIT, except the object is caller managed. This is intended to be + * used when the caller might want to cancel the ScopeExit. + */ +#define SCOPE_GUARD(body) detail::ScopeExit([&]() body) -- cgit v1.2.3