Skip to content

Commit 9d44029

Browse files
committed
Use offsets in layout, not lengths
1 parent e00741c commit 9d44029

File tree

2 files changed

+12
-9
lines changed

2 files changed

+12
-9
lines changed

jupyter_server/base/zmqhandlers.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -162,9 +162,16 @@ def _on_zmq_reply(self, stream, msg_list):
162162
self.log.warning("zmq message arrived on closed channel")
163163
self.close()
164164
return
165+
channel = getattr(stream, "channel", None)
166+
offsets = []
167+
curr_sum = 0
168+
for msg in msg_list:
169+
length = len(msg)
170+
offsets.append(length + curr_sum)
171+
curr_sum += length
165172
layout = json.dumps({
166-
"channel": getattr(stream, "channel", None),
167-
"offsets": [0] + [len(msg) for msg in msg_list] + [0],
173+
"channel": channel,
174+
"offsets": offsets,
168175
}).encode("utf-8")
169176
layout_length = len(layout).to_bytes(2, byteorder="little")
170177
bin_msg = b"".join([layout_length, layout] + msg_list)

jupyter_server/services/kernels/handlers.py

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -694,17 +694,13 @@ def on_restart_failed(self):
694694
self._send_status_message("dead")
695695

696696

697-
698697
def get_msg_list(msg, offsets):
699698
i0 = 0
700-
i = 1
701-
while True:
702-
i1 = i0 + offsets[i]
703-
if i0 == i1:
704-
return
699+
for i1 in offsets:
705700
yield msg[i0:i1]
706701
i0 = i1
707-
i += 1
702+
yield msg[i0:]
703+
708704

709705
# -----------------------------------------------------------------------------
710706
# URL to handler mappings

0 commit comments

Comments
 (0)