Finally block is a block that is executed when it's dropped. It helps a user write the deferred statements that should be executed, even when some statements return early.
function f(flag: &AtomicBool) -> Option<()> {
if some_condition {
let _f = finally(|| {
flag.store(true, Ordering::SeqCst);
});
some_function(flag)?;
} else {
another_function()?;
}
}