diff --git a/betterproto2/src/betterproto2/grpclib/grpclib_client.py b/betterproto2/src/betterproto2/grpclib/grpclib_client.py index d8c6657..d99f098 100644 --- a/betterproto2/src/betterproto2/grpclib/grpclib_client.py +++ b/betterproto2/src/betterproto2/grpclib/grpclib_client.py @@ -144,9 +144,14 @@ async def _stream_stream( try: async for response in stream: yield response - except: + finally: sending_task.cancel() - raise + try: + await sending_task + except asyncio.CancelledError: + pass + if not stream._end_done: + await stream.end() @staticmethod async def _send_messages(stream, messages: MessageSource):