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