Hi!
I’ve got the following snippet:
def eval[A](stream: Source[A, NotUsed]): Seq[A] =
Await.result(stream.runWith(Sink.seq), 10.seconds)
println(eval(Source.single(3) zipLatest Source.empty)) // 1
println(eval(Source.single(3) zipLatest Source(List()))) // 2
println(eval(Source(List()) zipLatest Source(List()))) // 3
When executed:
- the first zipLatest completes, printing an empty Vector.
- the second one times out, even though
Source(List())individually does complete. - the third one completes again.
According to the docs zipLatest should complete when any upstream completes. How come it does complete for Source.empty but not for some uses of Source(List())? Is this the intended behaviour?