diff --git a/src/Quasar/ResourceManager.hs b/src/Quasar/ResourceManager.hs index 742216ce2a016b31173b63d376c31a95ab667549..aefeb809677d6a566d4d1cda1943f6bdc679e6fb 100644 --- a/src/Quasar/ResourceManager.hs +++ b/src/Quasar/ResourceManager.hs @@ -8,6 +8,7 @@ module Quasar.ResourceManager ( registerNewResource_, registerDisposable, registerDisposeAction, + registerAsyncDisposeAction, withScopedResourceManager, onResourceManager, captureDisposable, @@ -133,6 +134,9 @@ registerDisposable disposable = do registerDisposeAction :: MonadResourceManager m => IO () -> m () registerDisposeAction disposeAction = mask_ $ registerDisposable =<< newDisposable disposeAction +registerAsyncDisposeAction :: MonadResourceManager m => IO () -> m () +registerAsyncDisposeAction disposeAction = mask_ $ registerDisposable =<< newAsyncDisposable disposeAction + -- | Locks the resource manager (which may fail), runs the computation and registeres the resulting disposable. -- -- The computation will be run in masked state.