From 5530b0eda17e745378a236f4d58d7a3b6624c39a Mon Sep 17 00:00:00 2001 From: Adam Fraser Date: Thu, 8 Dec 2022 10:35:18 -0800 Subject: [PATCH 1/2] offer end of stream signal --- .../shared/src/test/scala/zio/stream/ZStreamSpec.scala | 2 +- streams/shared/src/main/scala/zio/stream/ZStream.scala | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/streams-tests/shared/src/test/scala/zio/stream/ZStreamSpec.scala b/streams-tests/shared/src/test/scala/zio/stream/ZStreamSpec.scala index 7a3a46840116..ae984b2dc34d 100644 --- a/streams-tests/shared/src/test/scala/zio/stream/ZStreamSpec.scala +++ b/streams-tests/shared/src/test/scala/zio/stream/ZStreamSpec.scala @@ -3448,7 +3448,7 @@ object ZStreamSpec extends ZIOBaseSpec { elements <- stream.runCollect done <- ref.get } yield assertTrue(elements == Chunk(1, 1, 2, 3, 5, 8) && done == 20) - } @@ flaky, + }, test("sink that is done before stream") { for { ref <- Ref.make(0) diff --git a/streams/shared/src/main/scala/zio/stream/ZStream.scala b/streams/shared/src/main/scala/zio/stream/ZStream.scala index b75f70212b45..24065f93902f 100644 --- a/streams/shared/src/main/scala/zio/stream/ZStream.scala +++ b/streams/shared/src/main/scala/zio/stream/ZStream.scala @@ -3069,7 +3069,7 @@ final class ZStream[-R, +E, +A] private (val channel: ZChannel[R, Any, Any, Any, ZChannel.write(chunk) *> loop, cause => ZChannel.fromZIO(queue.offer(Take.failCause(cause))), - _ => ZChannel.fromZIO(queue.shutdown) + _ => ZChannel.fromZIO(queue.offer(Take.end)) ) new ZStream(self.channel >>> loop) .merge(ZStream.execute(right.run(sink)), HaltStrategy.Both) From 2b8cb4ac9798d901425b5ac76c1bae52addb1a64 Mon Sep 17 00:00:00 2001 From: Adam Fraser Date: Thu, 8 Dec 2022 10:55:42 -0800 Subject: [PATCH 2/2] fix test --- .../shared/src/test/scala/zio/stream/ZStreamSpec.scala | 2 +- streams/shared/src/main/scala/zio/stream/ZStream.scala | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/streams-tests/shared/src/test/scala/zio/stream/ZStreamSpec.scala b/streams-tests/shared/src/test/scala/zio/stream/ZStreamSpec.scala index ae984b2dc34d..a347b31c0ca4 100644 --- a/streams-tests/shared/src/test/scala/zio/stream/ZStreamSpec.scala +++ b/streams-tests/shared/src/test/scala/zio/stream/ZStreamSpec.scala @@ -3474,7 +3474,7 @@ object ZStreamSpec extends ZIOBaseSpec { _ <- stream.tapSink(sink).take(3).runDrain result <- ref.get } yield assertTrue(result == 6) - } @@ flaky + } ), suite("throttleEnforce")( test("free elements") { diff --git a/streams/shared/src/main/scala/zio/stream/ZStream.scala b/streams/shared/src/main/scala/zio/stream/ZStream.scala index 24065f93902f..339a8dbf727c 100644 --- a/streams/shared/src/main/scala/zio/stream/ZStream.scala +++ b/streams/shared/src/main/scala/zio/stream/ZStream.scala @@ -3061,7 +3061,7 @@ final class ZStream[-R, +E, +A] private (val channel: ZChannel[R, Any, Any, Any, sink: => ZSink[R1, E1, A, Any, Any] )(implicit trace: Trace): ZStream[R1, E1, A] = ZStream.fromZIO(Queue.bounded[Take[E1, A]](1)).flatMap { queue => - val right = ZStream.fromQueueWithShutdown(queue, 1).flattenTake + val right = ZStream.fromQueue(queue, 1).flattenTake lazy val loop: ZChannel[R1, E, Chunk[A], Any, E1, Chunk[A], Any] = ZChannel.readWithCause( chunk =>