cleanup_all(tasks) that calls every zero-argument callable in tasks, ignoring any exception each may raise, and returns the count of tasks that succeeded. Cleanup routines must never abort their siblings.cleanup_all([ok_fn, failing_fn, ok_fn])
2
The failing task is swallowed; both good ones ran.
try/except Exception inside the loop.
Increment only in the try path (or use else).