on master help sign in
rename yieldRate to just rate
a74f668Harendra Kumar
src/Streamly.hs+2−2
@@ -112,7 +112,7 @@ module Streamly
112 -- $concurrency
112 -- $concurrency
113 , maxThreads
113 , maxThreads
114 , maxBuffer
114 , maxBuffer
115− , yieldRate
115+ , rate
116
116
117 -- * Folding Containers of Streams
117 -- * Folding Containers of Streams
118 -- $foldutils
118 -- $foldutils
@@ -173,7 +173,7 @@ import Streamly.Streams.Ahead
173import Streamly.Streams.Parallel
173import Streamly.Streams.Parallel
174import Streamly.Streams.Zip
174import Streamly.Streams.Zip
175import Streamly.Streams.Prelude
175import Streamly.Streams.Prelude
176−import Streamly.Streams.SVar (maxThreads, maxBuffer, yieldRate)
176+import Streamly.Streams.SVar (maxThreads, maxBuffer, rate)
177import Streamly.SVar (MonadAsync)
177import Streamly.SVar (MonadAsync)
178import Data.Semigroup (Semigroup(..))
178import Data.Semigroup (Semigroup(..))
179
179
src/Streamly/Streams/SVar.hs+6−6
@@ -32,7 +32,7 @@ module Streamly.Streams.SVar
32 , maxThreads
32 , maxThreads
33 , maxBuffer
33 , maxBuffer
34 , maxYields
34 , maxYields
35− , yieldRate
35+ , rate
36 )
36 )
37where
37where
38
38
@@ -198,13 +198,13 @@ maxBufferSerial _ = id
198-- * The maximum rate that the stream consumer can achieve
198-- * The maximum rate that the stream consumer can achieve
199--
199--
200-- @since 0.5.0
200-- @since 0.5.0
201−{-# INLINE_NORMAL yieldRate #-}
201+{-# INLINE_NORMAL rate #-}
202−yieldRate :: IsStream t => Double -> t m a -> t m a
202+rate :: IsStream t => Double -> t m a -> t m a
203−yieldRate n m = fromStream $ Stream $ \st stp sng yld -> do
203+rate n m = fromStream $ Stream $ \st stp sng yld -> do
204 unStream (toStream m) (setMaxStreamRate n st) stp sng yld
204 unStream (toStream m) (setMaxStreamRate n st) stp sng yld
205
205
206{-
206{-
207−{-# RULES "yieldRate serial" yieldRate = yieldRateSerial #-}
207+{-# RULES "rate serial" rate = yieldRateSerial #-}
208yieldRateSerial :: Double -> SerialT m a -> SerialT m a
208yieldRateSerial :: Double -> SerialT m a -> SerialT m a
209yieldRateSerial _ = id
209yieldRateSerial _ = id
210-}
210-}
@@ -212,7 +212,7 @@ yieldRateSerial _ = id
212-- | Specify the average latency, in nanoseconds, of a single threaded action
212-- | Specify the average latency, in nanoseconds, of a single threaded action
213-- in a concurrent composition. Streamly can measure the latencies, but that is
213-- in a concurrent composition. Streamly can measure the latencies, but that is
214-- possible only after at least one task has completed. This combinator can be
214-- possible only after at least one task has completed. This combinator can be
215−-- used to provide a latency hint so that rate control using 'yieldRate' can take
215+-- used to provide a latency hint so that rate control using 'rate' can take
216-- that into account right from the beginning. When not specified then a
216-- that into account right from the beginning. When not specified then a
217-- default behavior is chosen which could be too slow or too fast, and would be
217-- default behavior is chosen which could be too slow or too fast, and would be
218-- restricted by any other control parameters configured.
218-- restricted by any other control parameters configured.
test/MaxRate.hs+6−6
@@ -30,8 +30,8 @@ measureRate' :: IsStream t
30 -> (Double, Double)
30 -> (Double, Double)
31 -> (Double, Double)
31 -> (Double, Double)
32 -> Spec
32 -> Spec
33−measureRate' desc t rate consumerDelay producerDelay dur = do
33+measureRate' desc t rval consumerDelay producerDelay dur = do
34− it (desc ++ " rate: " ++ show rate
34+ it (desc ++ " rate: " ++ show rval
35 ++ ", consumer latency: " ++ show consumerDelay
35 ++ ", consumer latency: " ++ show consumerDelay
36 ++ ", producer latency: " ++ show producerDelay)
36 ++ ", producer latency: " ++ show producerDelay)
37 $ durationShouldBe dur $ do
37 $ durationShouldBe dur $ do
@@ -43,8 +43,8 @@ measureRate' desc t rate consumerDelay producerDelay dur = do
43 $ t
43 $ t
44 $ maxBuffer (-1)
44 $ maxBuffer (-1)
45 $ maxThreads (-1)
45 $ maxThreads (-1)
46− $ yieldRate rate
46+ $ rate rval
47− $ S.take (round $ rate * 10)
47+ $ S.take (round $ rval * 10)
48 $ S.repeatM $ do
48 $ S.repeatM $ do
49 let (t1, t2) = producerDelay
49 let (t1, t2) = producerDelay
50 r <- if t1 == t2
50 r <- if t1 == t2
@@ -69,9 +69,9 @@ measureRate :: IsStream t
69 -> Int
69 -> Int
70 -> (Double, Double)
70 -> (Double, Double)
71 -> Spec
71 -> Spec
72−measureRate desc t rate consumerDelay producerDelay dur =
72+measureRate desc t rval consumerDelay producerDelay dur =
73 let d = fromIntegral producerDelay
73 let d = fromIntegral producerDelay
74− in measureRate' desc t rate consumerDelay (d, d) dur
74+ in measureRate' desc t rval consumerDelay (d, d) dur
75
75
76main :: IO ()
76main :: IO ()
77main = hspec $ do
77main = hspec $ do