diff --git a/distributed/comm/tcp.py b/distributed/comm/tcp.py index 769e9132abe..940de0ec5ad 100644 --- a/distributed/comm/tcp.py +++ b/distributed/comm/tcp.py @@ -186,13 +186,12 @@ async def read(self, deserializers=None): lengths = await stream.read_bytes(8 * n_frames) lengths = struct.unpack("Q" * n_frames, lengths) - frames = [] - for length in lengths: - frame = bytearray(length) - if length: - n = await stream.read_into(frame) - assert n == length, (n, length) - frames.append(frame) + frames = [bytearray(each_length) for each_length in lengths] + recv_frames = [each_frame for each_frame in frames if len(each_frame) > 0] + for each_frame in recv_frames: + each_length = len(each_frame) + n = await stream.read_into(each_frame) + assert n == each_length, (n, each_length) except StreamClosedError as e: self.stream = None if not shutting_down():