pipes-misc 0.2.0.0 → 0.2.0.1
raw patch · 2 files changed
+11/−7 lines, 2 filesdep ~pipes-miscPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: pipes-misc
API changes (from Hackage documentation)
Files
- pipes-misc.cabal +2/−2
- src/Pipes/Misc.hs +9/−5
pipes-misc.cabal view
@@ -1,5 +1,5 @@ name: pipes-misc-version: 0.2.0.0+version: 0.2.0.1 synopsis: Miscellaneous utilities for pipes, required by glazier-tutorial description: Please see README.md homepage: https://github.com/louispan/pipes-misc#readme@@ -35,7 +35,7 @@ build-depends: base >= 4.7 && < 5 , lens >=4 &&< 5 , pipes >= 4 && < 5- , pipes-misc >= 0.2.0.0+ , pipes-misc , transformers >= 0.4 && < 0.6 , hspec >= 2 && < 3 ghc-options: -Wall -threaded -rtsopts -with-rtsopts=-N
src/Pipes/Misc.hs view
@@ -6,7 +6,7 @@ module Pipes.Misc where import Control.Arrow-import qualified Control.Concurrent.STM as S+import Control.Concurrent.STM import Control.Lens import Control.Monad import Control.Monad.State.Strict@@ -19,14 +19,18 @@ import Control.Monad.Except import Control.Applicative --- | Like Pipes.Concurrent.fromInput, but stays in STM-fromInputSTM :: PC.Input a -> P.Producer' a S.STM ()+-- | Like Pipes.Concurrent.fromInput, but stays in STM.+-- Using @hoist atomically@ to convert to IO monad seems to work.+-- Do not use @unsafeHoist atomically@.+fromInputSTM :: PC.Input a -> P.Producer' a STM () fromInputSTM as = void $ runMaybeT $ forever $ do a <- MaybeT $ lift $ PC.recv as lift $ P.yield a --- | Like Pipes.Concurrent.toOutput, but stays in STM-toOutputSTM :: PC.Output a -> P.Consumer' a S.STM ()+-- | Like Pipes.Concurrent.toOutput, but stays in STM.+-- Using @hoist atomically@ to convert to IO monad seems to work.+-- Do not use @unsafeHoist atomically@.+toOutputSTM :: PC.Output a -> P.Consumer' a STM () toOutputSTM output = void $ runMaybeT $ forever $ do a <- lift P.await p <- lift $ lift $ PC.send output a