From aa7bc258170ede024e6078134d350dd2ba1a2f9e Mon Sep 17 00:00:00 2001 From: Adam Fraser Date: Wed, 15 Feb 2023 16:18:10 -0800 Subject: [PATCH] terminate zip in uninterruptible region --- .../shared/src/test/scala/zio/stream/ZStreamSpec.scala | 5 +++++ streams/shared/src/main/scala/zio/stream/ZStream.scala | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) 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 eb680086c105..213b80c5d70c 100644 --- a/streams-tests/shared/src/test/scala/zio/stream/ZStreamSpec.scala +++ b/streams-tests/shared/src/test/scala/zio/stream/ZStreamSpec.scala @@ -4155,6 +4155,11 @@ object ZStreamSpec extends ZIOBaseSpec { .runCollect .exit )(dies(anything)) + }, + test("zip in uninterruptible region") { + for { + _ <- ZStream(1).zip(ZStream(2)).runDrain.uninterruptible + } yield assertCompletes } ), suite("zipAllWith")( diff --git a/streams/shared/src/main/scala/zio/stream/ZStream.scala b/streams/shared/src/main/scala/zio/stream/ZStream.scala index 43ab3cf186b9..96d8692df01b 100644 --- a/streams/shared/src/main/scala/zio/stream/ZStream.scala +++ b/streams/shared/src/main/scala/zio/stream/ZStream.scala @@ -950,7 +950,7 @@ final class ZStream[-R, +E, +A] private (val channel: ZChannel[R, Any, Any, Any, ZChannel.readWithCause[R1, Err, Chunk[Elem], Any, Nothing, Nothing, Any]( chunk => ZChannel.fromZIO(handoff.offer(Take.chunk(chunk))) *> producer(handoff, latch), cause => ZChannel.fromZIO(handoff.offer(Take.failCause(cause))), - _ => ZChannel.fromZIO(handoff.offer(Take.end)) *> producer(handoff, latch) + _ => ZChannel.fromZIO(handoff.offer(Take.end)) ) new ZStream(