次のコードは、次putStrLn
の理由により、効果を並行して実行することになっていmapMPar
ます。
val runtime = zio.Runtime.default
val foo = ZIO.sleep(5.second) *> ZIO("foo")
val bar = ZIO("bar")
val k = ZStream.fromEffect(foo) ++ ZStream.fromEffect(bar)
val r = k.mapMPar(3)(x => console.putStrLn(s"Processing `${x}`"))
runtime.unsafeRun(r.runDrain)
しかし実際には、何があっても常にfoo
前に処理されます。bar
私は何かを見逃しましたか、それともバグですか?