diff --git a/src/Quasar/Observable.hs b/src/Quasar/Observable.hs index 2ca45e6d5d2f1d331599344aa5c463fe46b967f4..0971917bff268f985bfbc8940208492df8e61851 100644 --- a/src/Quasar/Observable.hs +++ b/src/Quasar/Observable.hs @@ -106,7 +106,7 @@ class IsRetrievable v o => IsObservable v o | o -> v where observeBlocking :: (IsObservable v o, MonadResourceManager m) => o -> (ObservableMessage v -> m ()) -> m a observeBlocking observable handler = do -- `withScopedResourceManager` removes the `observe` callback when the `handler` fails. - genericWithScopedResourceManager do + withScopedResourceManager do var <- liftIO newEmptyTMVarIO observe observable \msg -> liftIO $ atomically do void $ tryTakeTMVar var diff --git a/src/Quasar/ResourceManager.hs b/src/Quasar/ResourceManager.hs index 1a9a1eadfa9602afed0578e5405e437bf82e4d1a..672ded67d51ef43a13174d3f054db4719292425a 100644 --- a/src/Quasar/ResourceManager.hs +++ b/src/Quasar/ResourceManager.hs @@ -9,7 +9,6 @@ module Quasar.ResourceManager ( registerDisposable, registerDisposeAction, withScopedResourceManager, - genericWithScopedResourceManager, onResourceManager, captureDisposable, captureDisposable_, @@ -156,12 +155,8 @@ registerNewResource action = mask_ $ lockResourceManager do registerNewResource_ :: (IsDisposable a, MonadResourceManager m) => m a -> m () registerNewResource_ action = void $ registerNewResource action -withScopedResourceManager :: MonadResourceManager m => ResourceManagerIO a -> m a +withScopedResourceManager :: MonadResourceManager m => m a -> m a withScopedResourceManager action = - bracket newResourceManager dispose \scope -> onResourceManager scope action - -genericWithScopedResourceManager :: MonadResourceManager m => m a -> m a -genericWithScopedResourceManager action = bracket newResourceManager dispose \scope -> localResourceManager scope action