on master help sign in
Perform first task inline instead of queueing
999b629Harendra Kumar
src/Asyncly/AsyncT.hs+3−2
@@ -445,8 +445,9 @@ parallel m1 m2 fair = AsyncT $ \ctx stp yld -> do
445 -- go left to right. If the left one keeps producing results we
445 -- go left to right. If the left one keeps producing results we
446 -- may or may not run the right one.
446 -- may or may not run the right one.
447 let q = workQueue c
447 let q = workQueue c
448− queueWork q m1 >> queueWork q m2
449− (runAsyncT (dequeueLoop ctx q fair)) Nothing stp yld
448+ continue = (runAsyncT (dequeueLoop ctx q fair)) Nothing stp yld
449+ queueWork q m2
450+ (runAsyncT m1) ctx continue yld
450
451
451instance MonadAsync m => Alternative (AsyncT m) where
452instance MonadAsync m => Alternative (AsyncT m) where
452 empty = mempty
453 empty = mempty