@@ -68,7 +68,30 @@ import qualified Streamly.Streams.StreamK as K
69 :: MonadIO m
69 :: MonadIO m
70 => State Stream m a -> Stream m a -> Maybe WorkerInfo -> m ()
70 => State Stream m a -> Stream m a -> Maybe WorkerInfo -> m ()
71−runOne st m0 winfo = go m0
71+runOne st m0 winfo =
72+ case getYieldLimit st of
74+ Just _ -> runOneLimited st m0 winfo
79+ liftIO $ decrementBufferLimit sv
80+ foldStreamShared st yieldk single stop m
82+ sv = fromJust $ streamVar st
85+ incrementBufferLimit sv
87+ sendit a = liftIO $ void $ send sv (ChildYield a)
88+ single a = sendit a >> (liftIO $ sendStop sv winfo)
89+ yieldk a r = sendit a >> go r
93+ => State Stream m a -> Stream m a -> Maybe WorkerInfo -> m ()
94+runOneLimited st m0 winfo = go m0