Skip to content
Snippets Groups Projects
Commit 40497aa4 authored by Jens Nolte's avatar Jens Nolte
Browse files

Add disposeOnError


Co-authored-by: default avatarJan Beinke <git@janbeinke.com>
parent 0f62efc8
No related branches found
No related tags found
No related merge requests found
Pipeline #2534 passed
......@@ -14,6 +14,7 @@ module Quasar.ResourceManager (
onResourceManager,
captureDisposable,
captureDisposable_,
disposeOnError,
liftResourceManagerIO,
handleByResourceManager,
......@@ -193,6 +194,14 @@ captureDisposable action = do
captureDisposable_ :: MonadResourceManager m => m () -> m Disposable
captureDisposable_ = snd <<$>> captureDisposable
-- | Disposes all resources created by the computation if the computation throws an exception.
disposeOnError :: MonadResourceManager m => m a -> m a
disposeOnError action = do
bracketOnError
newResourceManager
dispose
\resourceManager -> localResourceManager resourceManager action
-- | Run a computation and throw any exception that occurs to the resource manager.
--
-- This can be used to run e.g. callbacks that belong to a different resource context.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment