summaryrefslogtreecommitdiff
path: root/src/lib/scope_guard.h
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2023-09-10 22:56:51 +0200
committerCarl Hetherington <cth@carlh.net>2023-09-10 22:56:51 +0200
commit96f25981e914d27377d13cccdd733d9996130703 (patch)
tree91d779656477467d17a6661cb8b22f65cce866cd /src/lib/scope_guard.h
parent23306255085a0b48168d51629f38597ee0bf80ce (diff)
Rearrange encoder.rearrange-encoder
Diffstat (limited to 'src/lib/scope_guard.h')
-rw-r--r--src/lib/scope_guard.h10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/lib/scope_guard.h b/src/lib/scope_guard.h
index ac60f9fea..c53acd9ce 100644
--- a/src/lib/scope_guard.h
+++ b/src/lib/scope_guard.h
@@ -43,13 +43,21 @@ public:
ScopeGuard (ScopeGuard const&) = delete;
ScopeGuard& operator=(ScopeGuard const&) = delete;
+ void cancel()
+ {
+ _cancelled = true;
+ }
+
~ScopeGuard ()
{
- _function();
+ if (!_cancelled) {
+ _function();
+ }
}
private:
std::function<void()> _function;
+ bool _cancelled = false;
};