Artem Nikiforov

Results 26 comments of Artem Nikiforov

I have modified your example a little: ``` object MyApp extends IOApp { val stream1 = fs2.Stream("a", "b", "c", "d", "e", "f", "g", "h").covary[IO].parEvalMapUnordered(8)(task1) val stream2 = fs2.Stream("u", "v", "w",...

wow, but `parEvalMap` works as you've discribed, interesting... ``` Print1: 1616240504945 a Print1: 1616240504946 u Print1: 1616240504947 v Print1: 1616240504947 b Print1: 1616240504948 w Print1: 1616240504949 c Print1: 1616240504950 d...

parEvalMapUnordered `v2.5.0` - has the bug, parEvalMapUnordered `v3.0.0-M1` - has the bug, parEvalMapUnordered `main Mar 19 11:01:27 2021` - doesn't have the bug, However, parEvalMap `main Mar 19 11:01:27 2021`...

> So, as mentioned above, the problem could be that `merge` throttles each of the input streams to only process one chunk from each side at a time. Note that...

> If we went the option route, we'd probably need to cache instances of `Some(CRLF)` and `Some(CR)`, right? :smiley: > The Java socket API uses end-of-input and end-of-output. I think...

> * Is there a way to abstract over `pcap` and `pcapng` if you just want to decode captures? I think there is. However, I think this functionality should be...

> * Note use of Shapeless will mean those files are Scala 2 only and will need reimplementations for Scala 3 using tuples, match types, etc. I think I should...

@iRevive, Has the issue been resolved in any version of fs2? In other words, was it fixed in some version and then broken in another version?

@iRevive Oooops, I might have broken it. I'll take a look at your example tomorrow. UPD: I think I got your point, looking into the issue.

My current suspicion falls on `https://github.com/typelevel/fs2/blob/v3.1.4/core/shared/src/main/scala/fs2/Stream.scala#L2118` IO.race launches both the `job` and the `stopReading.get`, waits for the FIRST action to complete. This construction is used to cancel all running computations...