packages feed

io-streams 1.5.0.0 → 1.5.0.1

raw patch · 3 files changed

+13/−4 lines, 3 filesdep ~network

Dependency ranges changed: network

Files

changelog.md view
@@ -1,3 +1,7 @@+# Version 1.5.0.1+Bugfix: `concurrentMerge []` should not block forever, even if this case is+pathological.+ # Version 1.5.0.0 - Changed the behaviour of `ByteString.splitOn` to not emit empty string if the   input ends in the delimiter; now `lines` should match Prelude's. Bumped major
io-streams.cabal view
@@ -1,5 +1,5 @@ Name:                io-streams-Version:             1.5.0.0+Version:             1.5.0.1 License:             BSD3 License-file:        LICENSE Category:            Data, Network, IO-Streams
src/System/IO/Streams/Concurrent.hs view
@@ -23,7 +23,7 @@ import           Control.Monad              (forM_) import           Prelude                    hiding (read) -------------------------------------------------------------------------------import           System.IO.Streams.Internal (InputStream, OutputStream, makeInputStream, makeOutputStream, read)+import           System.IO.Streams.Internal (InputStream, OutputStream, makeInputStream, makeOutputStream, nullInput, read)   ------------------------------------------------------------------------------@@ -60,9 +60,14 @@ -- produced stream does not yield end-of-stream until all of the input streams -- have finished. ----- This traps exceptions in each concurrent thread and re-raises them in the--- current thread.+-- Any exceptions raised in one of the worker threads will be trapped and+-- re-raised in the current thread.+--+-- If the supplied list is empty, `concurrentMerge` will return an empty+-- stream. (/Since: 1.5.0.1/)+-- concurrentMerge :: [InputStream a] -> IO (InputStream a)+concurrentMerge [] = nullInput concurrentMerge iss = do     mv    <- newEmptyMVar     nleft <- newMVar $! length iss