From 4fcc90a5066be7182a19281f2eba645fa1f718db Mon Sep 17 00:00:00 2001 From: Jens Nolte <git@queezle.net> Date: Sat, 18 Sep 2021 00:02:47 +0200 Subject: [PATCH] Rename to newUnmanagedResourceManager Co-authored-by: Jan Beinke <git@janbeinke.com> --- src/Quasar/Observable.hs | 6 +++--- src/Quasar/ResourceManager.hs | 10 +++++----- test/Quasar/DisposableSpec.hs | 4 ++-- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/Quasar/Observable.hs b/src/Quasar/Observable.hs index 4aac428..90382b7 100644 --- a/src/Quasar/Observable.hs +++ b/src/Quasar/Observable.hs @@ -102,7 +102,7 @@ class IsRetrievable v o => IsObservable v o | o -> v where -- | Old signature of `observe`, will be removed from the class once it's no longer used for implementations. oldObserve :: o -> (ObservableMessage v -> IO ()) -> IO Disposable oldObserve observable callback = do - resourceManager <- unsafeNewResourceManager + resourceManager <- newUnmanagedResourceManager onResourceManager resourceManager do observe observable $ \msg -> liftIO (callback msg) pure $ toDisposable resourceManager @@ -230,7 +230,7 @@ instance IsObservable r (BindObservable r) where oldObserve :: BindObservable r -> (ObservableMessage r -> IO ()) -> IO Disposable oldObserve (BindObservable fx fn) callback = do -- Create a resource manager to ensure all subscriptions are cleaned up when disposing. - resourceManager <- unsafeNewResourceManager + resourceManager <- newUnmanagedResourceManager isDisposingVar <- newTVarIO False disposableVar <- newTMVarIO noDisposable @@ -298,7 +298,7 @@ instance IsObservable r (CatchObservable e r) where oldObserve :: CatchObservable e r -> (ObservableMessage r -> IO ()) -> IO Disposable oldObserve (CatchObservable fx fn) callback = do -- Create a resource manager to ensure all subscriptions are cleaned up when disposing. - resourceManager <- unsafeNewResourceManager + resourceManager <- newUnmanagedResourceManager isDisposingVar <- newTVarIO False disposableVar <- newTMVarIO noDisposable diff --git a/src/Quasar/ResourceManager.hs b/src/Quasar/ResourceManager.hs index 05eade7..967ff0a 100644 --- a/src/Quasar/ResourceManager.hs +++ b/src/Quasar/ResourceManager.hs @@ -15,7 +15,7 @@ module Quasar.ResourceManager ( ResourceManager, withResourceManager, newResourceManager, - unsafeNewResourceManager, + newUnmanagedResourceManager, attachDisposable, attachDisposeAction, attachDisposeAction_, @@ -182,19 +182,19 @@ instance IsDisposable ResourceManager where ((\disposed -> unless disposed retry) =<< readTVar (disposedVar resourceManager)) withResourceManager :: (MonadAwait m, MonadMask m, MonadIO m) => (ResourceManager -> m a) -> m a -withResourceManager = bracket unsafeNewResourceManager (await <=< liftIO . dispose) +withResourceManager = bracket newUnmanagedResourceManager (await <=< liftIO . dispose) withResourceManagerM :: (MonadAwait m, MonadMask m, MonadIO m) => (ReaderT ResourceManager m a) -> m a withResourceManagerM action = withResourceManager \resourceManager -> onResourceManager resourceManager action newResourceManager :: MonadResourceManager m => m ResourceManager newResourceManager = mask_ do - resourceManager <- unsafeNewResourceManager + resourceManager <- newUnmanagedResourceManager registerDisposable resourceManager pure resourceManager -unsafeNewResourceManager :: MonadIO m => m ResourceManager -unsafeNewResourceManager = liftIO do +newUnmanagedResourceManager :: MonadIO m => m ResourceManager +newUnmanagedResourceManager = liftIO do disposingVar <- newTVarIO False disposedVar <- newTVarIO False exceptionVar <- newEmptyTMVarIO diff --git a/test/Quasar/DisposableSpec.hs b/test/Quasar/DisposableSpec.hs index a424215..c8796f3 100644 --- a/test/Quasar/DisposableSpec.hs +++ b/test/Quasar/DisposableSpec.hs @@ -44,10 +44,10 @@ spec = parallel $ do describe "ResourceManager" $ do it "can be created" $ io do - void unsafeNewResourceManager + void newUnmanagedResourceManager it "can be created and disposed" $ io do - resourceManager <- unsafeNewResourceManager + resourceManager <- newUnmanagedResourceManager await =<< dispose resourceManager it "can be created and disposed" $ io do -- GitLab