calamity 0.1.17.0 → 0.1.17.1
raw patch · 3 files changed
+18/−12 lines, 3 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
Files
- ChangeLog.md +7/−0
- calamity.cabal +2/−2
- src/Calamity/Client/Client.hs +9/−10
ChangeLog.md view
@@ -1,5 +1,12 @@ # Changelog for Calamity +## 0.1.17.1++*2020-06-29*++* `waitUntil` and `waitUntilM` now correctly remove the temorary event handler+ they create if an exception is raised.+ ## 0.1.17.0 *2020-06-28*
calamity.cabal view
@@ -4,10 +4,10 @@ -- -- see: https://github.com/sol/hpack ----- hash: d52c65805c329ab185c6c81bf5373347ad1946bdeef8964dd4999f411797d6a2+-- hash: 4cd6c5a80a55753413c0b839551d9d76dac6c32465e782b04be30aa1a16abf24 name: calamity-version: 0.1.17.0+version: 0.1.17.1 synopsis: A library for writing discord bots in haskell description: Please see the README on GitHub at <https://github.com/nitros12/calamity#readme> category: Network, Web
src/Calamity/Client/Client.hs view
@@ -65,6 +65,7 @@ import qualified Polysemy.Error as P import qualified Polysemy.Fail as P import qualified Polysemy.Reader as P+import qualified Polysemy.Resource as P import TextShow ( TextShow(showt) ) @@ -237,12 +238,11 @@ ( BotC r, ReactConstraints s) => (EHType s -> Bool) -> P.Sem r (EHType s)-waitUntil f = do+waitUntil f = P.resourceToIOFinal $ do result <- P.embed newEmptyMVar- remove <- react @s (checker result)- res <- P.embed $ takeMVar result- remove- pure res+ P.bracket (P.raise $ react @s (checker result))+ P.raise+ (const . P.embed $ takeMVar result) where checker :: MVar (EHType s) -> EHType s -> P.Sem r () checker result args = do@@ -277,12 +277,11 @@ ( BotC r, ReactConstraints s) => (EHType s -> P.Sem r Bool) -> P.Sem r (EHType s)-waitUntilM f = do+waitUntilM f = P.resourceToIOFinal $ do result <- P.embed newEmptyMVar- remove <- react @s (checker result)- res <- P.embed $ takeMVar result- remove- pure res+ P.bracket (P.raise $ react @s (checker result))+ P.raise+ (const . P.embed $ takeMVar result) where checker :: MVar (EHType s) -> EHType s -> P.Sem r () checker result args = do