diff --git a/src/Quasar/Disposable.hs b/src/Quasar/Disposable.hs index a8b0e41951a40da908f5f3e4ce56074c71fac84d..c15bfce54dd9f325e93407256904ec4533301f79 100644 --- a/src/Quasar/Disposable.hs +++ b/src/Quasar/Disposable.hs @@ -14,7 +14,7 @@ module Quasar.Disposable ( withOnResourceManager, onResourceManager, captureDisposable, - captureDisposable_, + captureTask, -- ** ResourceManager IsResourceManager(..), @@ -263,20 +263,19 @@ instance {-# OVERLAPPABLE #-} MonadResourceManager m => MonadResourceManager (Re askResourceManager = lift askResourceManager - onResourceManager :: (IsResourceManager a) => a -> ReaderT ResourceManager m r -> m r onResourceManager target action = runReaderT action (toResourceManager target) -captureDisposable :: MonadResourceManager m => m (Awaitable a) -> m (Task a) -captureDisposable action = do +captureTask :: MonadResourceManager m => m (Awaitable a) -> m (Task a) +captureTask action = do -- TODO improve performance by only creating a new resource manager when two or more disposables are attached resourceManager <- newResourceManager awaitable <- localResourceManager resourceManager $ action pure $ Task (toDisposable resourceManager) awaitable -captureDisposable_ :: MonadResourceManager m => m () -> m Disposable -captureDisposable_ action = do +captureDisposable :: MonadResourceManager m => m () -> m Disposable +captureDisposable action = do -- TODO improve performance by only creating a new resource manager when two or more disposables are attached resourceManager <- newResourceManager localResourceManager resourceManager action