From 177066a46ea35e0fd2d58f9ef58d83152333d909 Mon Sep 17 00:00:00 2001 From: Jens Nolte <git@queezle.net> Date: Sun, 29 Aug 2021 23:42:17 +0200 Subject: [PATCH] Rename awaitDispose to disposeAndAwait Co-authored-by: Jan Beinke <git@janbeinke.com> --- src/Quasar/Async.hs | 2 +- src/Quasar/Disposable.hs | 6 +++--- src/Quasar/Observable.hs | 2 +- src/Quasar/Timer.hs | 2 +- test/Quasar/DisposableSpec.hs | 12 ++++++------ test/Quasar/Observable/ObservableHashMapSpec.hs | 6 +++--- test/Quasar/Observable/ObservablePrioritySpec.hs | 8 ++++---- 7 files changed, 19 insertions(+), 19 deletions(-) diff --git a/src/Quasar/Async.hs b/src/Quasar/Async.hs index 06c196b..6fdc536 100644 --- a/src/Quasar/Async.hs +++ b/src/Quasar/Async.hs @@ -58,7 +58,7 @@ instance MonadAsync (ReaderT ResourceManager IO) where -- Thread has completed work, "disarm" the disposable and fire it void $ atomically $ swapTMVar threadIdVar Nothing - awaitDispose disposable + disposeAndAwait disposable do atomically $ putTMVar threadIdVar Nothing diff --git a/src/Quasar/Disposable.hs b/src/Quasar/Disposable.hs index 238c90e..145ba9c 100644 --- a/src/Quasar/Disposable.hs +++ b/src/Quasar/Disposable.hs @@ -2,7 +2,7 @@ module Quasar.Disposable ( -- * Disposable IsDisposable(..), Disposable, - awaitDispose, + disposeAndAwait, newDisposable, synchronousDisposable, noDisposable, @@ -56,8 +56,8 @@ class IsDisposable a where -- | Dispose a resource in the IO monad. -awaitDispose :: (MonadAwait m, MonadIO m) => IsDisposable a => a -> m () -awaitDispose disposable = await =<< liftIO (dispose disposable) +disposeAndAwait :: (MonadAwait m, MonadIO m) => IsDisposable a => a -> m () +disposeAndAwait disposable = await =<< liftIO (dispose disposable) diff --git a/src/Quasar/Observable.hs b/src/Quasar/Observable.hs index 7b817fa..b686664 100644 --- a/src/Quasar/Observable.hs +++ b/src/Quasar/Observable.hs @@ -94,7 +94,7 @@ class IsRetrievable v o => IsObservable v o | o -> v where atomically do readTVar calledIdVar >>= \called -> unless (called >= currentMessage) retry - do awaitDispose + do disposeAndAwait do const $ forever do (msgId, msg) <- liftIO $ atomically $ liftA2 (,) (readTVar idVar) (readTVar msgVar) diff --git a/src/Quasar/Timer.hs b/src/Quasar/Timer.hs index 9f6cebf..76eeacd 100644 --- a/src/Quasar/Timer.hs +++ b/src/Quasar/Timer.hs @@ -177,7 +177,7 @@ newTimer scheduler time = do sleepUntil :: TimerScheduler -> UTCTime -> IO () -sleepUntil scheduler time = bracketOnError (newTimer scheduler time) awaitDispose await +sleepUntil scheduler time = bracketOnError (newTimer scheduler time) disposeAndAwait await diff --git a/test/Quasar/DisposableSpec.hs b/test/Quasar/DisposableSpec.hs index ba961d3..66ff79f 100644 --- a/test/Quasar/DisposableSpec.hs +++ b/test/Quasar/DisposableSpec.hs @@ -26,20 +26,20 @@ spec = parallel $ do describe "newDisposable" $ do it "signals it's disposed state" $ do disposable <- newDisposable $ pure $ pure () - void $ forkIO $ threadDelay 100000 >> awaitDispose disposable + void $ forkIO $ threadDelay 100000 >> disposeAndAwait disposable await (isDisposed disposable) pure () :: IO () it "can be disposed multiple times" $ io do disposable <- newDisposable $ pure $ pure () - awaitDispose disposable - awaitDispose disposable + disposeAndAwait disposable + disposeAndAwait disposable await (isDisposed disposable) it "can be disposed in parallel" $ do disposable <- newDisposable $ pure () <$ threadDelay 100000 - void $ forkIO $ awaitDispose disposable - awaitDispose disposable + void $ forkIO $ disposeAndAwait disposable + disposeAndAwait disposable await (isDisposed disposable) @@ -98,4 +98,4 @@ spec = parallel $ do it "can attach an disposable that is disposed asynchronously" $ do withResourceManager \resourceManager -> do disposable <- attachDisposeAction resourceManager $ pure () <$ threadDelay 100000 - void $ forkIO $ awaitDispose disposable + void $ forkIO $ disposeAndAwait disposable diff --git a/test/Quasar/Observable/ObservableHashMapSpec.hs b/test/Quasar/Observable/ObservableHashMapSpec.hs index 85846d9..0bef67a 100644 --- a/test/Quasar/Observable/ObservableHashMapSpec.hs +++ b/test/Quasar/Observable/ObservableHashMapSpec.hs @@ -39,7 +39,7 @@ spec = parallel $ do OM.insert "key2" "value2" om lastCallbackShouldBe (HM.fromList [("key", "value"), ("key2", "value2")]) - awaitDispose subscriptionHandle + disposeAndAwait subscriptionHandle lastCallbackShouldBe (HM.fromList [("key", "value"), ("key2", "value2")]) OM.insert "key3" "value3" om @@ -61,7 +61,7 @@ spec = parallel $ do OM.insert "key2" "value2" om lastDeltaShouldBe $ Insert "key2" "value2" - awaitDispose subscriptionHandle + disposeAndAwait subscriptionHandle lastDeltaShouldBe $ Insert "key2" "value2" OM.insert "key3" "value3" om @@ -120,7 +120,7 @@ spec = parallel $ do v2ShouldBe $ Just "changed" retrieveIO om `shouldReturn` HM.singleton "key2" "changed" - awaitDispose handle2 + disposeAndAwait handle2 OM.lookupDelete "key2" om `shouldReturn` Just "changed" v2ShouldBe $ Just "changed" diff --git a/test/Quasar/Observable/ObservablePrioritySpec.hs b/test/Quasar/Observable/ObservablePrioritySpec.hs index ba57c93..e58d9d9 100644 --- a/test/Quasar/Observable/ObservablePrioritySpec.hs +++ b/test/Quasar/Observable/ObservablePrioritySpec.hs @@ -22,9 +22,9 @@ spec = do retrieveIO op `shouldReturn` Just "p2" p1 <- OP.insertValue op 1 "p1" retrieveIO op `shouldReturn` Just "p2" - awaitDispose p2 + disposeAndAwait p2 retrieveIO op `shouldReturn` Just "p1" - awaitDispose p1 + disposeAndAwait p1 retrieveIO op `shouldReturn` Nothing it "sends updates when its value changes" $ do result <- newIORef [] @@ -40,9 +40,9 @@ spec = do mostRecentShouldBe (Just "p2") p1 <- OP.insertValue op 1 "p1" mostRecentShouldBe (Just "p2") - awaitDispose p2 + disposeAndAwait p2 mostRecentShouldBe (Just "p1") - awaitDispose p1 + disposeAndAwait p1 mostRecentShouldBe Nothing length <$> readIORef result `shouldReturn` 4 -- GitLab