on master help sign in
Do not run each individual stream action with captured state
debe277Harendra Kumar
src/Streamly/Streams/Parallel.hs+1−2
@@ -81,7 +81,6 @@ runOne st m0 winfo = go m0
81 else liftIO $ cleanupSVarFromWorker sv
81 else liftIO $ cleanupSVarFromWorker sv
82
82
83 sv = fromJust $ streamVar st
83 sv = fromJust $ streamVar st
84− mrun = runInIO $ svarMrun sv
85
84
86 stop = liftIO $ do
85 stop = liftIO $ do
87 incrementBufferLimit sv
86 incrementBufferLimit sv
@@ -89,7 +88,7 @@ runOne st m0 winfo = go m0
89 sendStop sv winfo
88 sendStop sv winfo
90 sendit a = liftIO $ void $ send sv (ChildYield a)
89 sendit a = liftIO $ void $ send sv (ChildYield a)
91 single a = sendit a >> (liftIO $ sendStop sv winfo)
90 single a = sendit a >> (liftIO $ sendStop sv winfo)
92− yieldk a r = sendit a >> (void $ liftIO $ mrun $ go r)
91+ yieldk a r = sendit a >> go r
93
92
94{-# NOINLINE forkSVarPar #-}
93{-# NOINLINE forkSVarPar #-}
95forkSVarPar :: (IsStream t, MonadAsync m)
94forkSVarPar :: (IsStream t, MonadAsync m)