From ca24983baeedaf6b02562dc678c992ed26a6a93f Mon Sep 17 00:00:00 2001 From: Jens Nolte <git@queezle.net> Date: Thu, 24 Feb 2022 23:21:17 +0100 Subject: [PATCH] Rename functions generating unmanaged disposers --- src/Quasar/Async/V2.hs | 2 +- src/Quasar/Resources.hs | 16 ++++++++-------- src/Quasar/Resources/Disposer.hs | 6 +++--- src/Quasar/Timer.hs | 2 +- 4 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/Quasar/Async/V2.hs b/src/Quasar/Async/V2.hs index 0a10cc1..f159f46 100644 --- a/src/Quasar/Async/V2.hs +++ b/src/Quasar/Async/V2.hs @@ -73,7 +73,7 @@ asyncWithUnmask' fn = maskIfRequired do resultVar <- newAsyncVarSTM threadIdVar <- newAsyncVarSTM -- Disposer is created first to ensure the resource can be safely attached - disposer <- newPrimitiveDisposer (disposeFn key resultVar (toAwaitable threadIdVar)) worker exChan + disposer <- newUnmanagedPrimitiveDisposer (disposeFn key resultVar (toAwaitable threadIdVar)) worker exChan pure (key, resultVar, threadIdVar, disposer) registerResource disposer diff --git a/src/Quasar/Resources.hs b/src/Quasar/Resources.hs index 33fd4b4..5ac6be8 100644 --- a/src/Quasar/Resources.hs +++ b/src/Quasar/Resources.hs @@ -24,8 +24,8 @@ module Quasar.Resources ( -- * Types to implement resources -- ** Disposer Disposer, - newIODisposerSTM, - newSTMDisposerSTM, + newUnmanagedIODisposerSTM, + newUnmanagedSTMDisposerSTM, -- ** Resource manager ResourceManager, @@ -46,11 +46,11 @@ import Quasar.Resources.Disposer import Quasar.Utils.ShortIO -newIODisposerSTM :: IO () -> TIOWorker -> ExceptionChannel -> STM Disposer -newIODisposerSTM fn worker exChan = newPrimitiveDisposer (forkAsyncShortIO fn exChan) worker exChan +newUnmanagedIODisposerSTM :: IO () -> TIOWorker -> ExceptionChannel -> STM Disposer +newUnmanagedIODisposerSTM fn worker exChan = newUnmanagedPrimitiveDisposer (forkAsyncShortIO fn exChan) worker exChan -newSTMDisposerSTM :: STM () -> TIOWorker -> ExceptionChannel -> STM Disposer -newSTMDisposerSTM fn worker exChan = newPrimitiveDisposer disposeFn worker exChan +newUnmanagedSTMDisposerSTM :: STM () -> TIOWorker -> ExceptionChannel -> STM Disposer +newUnmanagedSTMDisposerSTM fn worker exChan = newUnmanagedPrimitiveDisposer disposeFn worker exChan where disposeFn :: ShortIO (Awaitable ()) disposeFn = unsafeShortIO $ atomically $ @@ -69,7 +69,7 @@ registerDisposeAction fn = do exChan <- askExceptionChannel rm <- askResourceManager ensureSTM do - disposer <- newIODisposerSTM fn worker exChan + disposer <- newUnmanagedIODisposerSTM fn worker exChan attachResource rm disposer pure disposer @@ -82,7 +82,7 @@ registerDisposeTransaction fn = do exChan <- askExceptionChannel rm <- askResourceManager ensureSTM do - disposer <- newSTMDisposerSTM fn worker exChan + disposer <- newUnmanagedSTMDisposerSTM fn worker exChan attachResource rm disposer pure disposer diff --git a/src/Quasar/Resources/Disposer.hs b/src/Quasar/Resources/Disposer.hs index 0db63b0..c4e97a1 100644 --- a/src/Quasar/Resources/Disposer.hs +++ b/src/Quasar/Resources/Disposer.hs @@ -8,7 +8,7 @@ module Quasar.Resources.Disposer ( disposeEventuallySTM_, isDisposing, isDisposed, - newPrimitiveDisposer, + newUnmanagedPrimitiveDisposer, -- * Resource manager ResourceManager, @@ -49,8 +49,8 @@ instance Resource Disposer where type DisposeFn = ShortIO (Awaitable ()) -newPrimitiveDisposer :: ShortIO (Awaitable ()) -> TIOWorker -> ExceptionChannel -> STM Disposer -newPrimitiveDisposer fn worker exChan = do +newUnmanagedPrimitiveDisposer :: ShortIO (Awaitable ()) -> TIOWorker -> ExceptionChannel -> STM Disposer +newUnmanagedPrimitiveDisposer fn worker exChan = do key <- newUniqueSTM FnDisposer key worker exChan <$> newTOnce fn <*> newFinalizers diff --git a/src/Quasar/Timer.hs b/src/Quasar/Timer.hs index e0d6973..a05e6f8 100644 --- a/src/Quasar/Timer.hs +++ b/src/Quasar/Timer.hs @@ -180,7 +180,7 @@ newUnmanagedTimer scheduler time = liftIO do key <- newUnique completed <- newAsyncVar atomically do - disposer <- newSTMDisposerSTM (disposeFn completed) (ioWorker scheduler) (exceptionChannel scheduler) + disposer <- newUnmanagedSTMDisposerSTM (disposeFn completed) (ioWorker scheduler) (exceptionChannel scheduler) let timer = Timer { key, time, completed, disposer, scheduler } tryTakeTMVar (heap scheduler) >>= \case Just timers -> putTMVar (heap scheduler) (insert timer timers) -- GitLab