From 69c4026d2b0d9d23701b856cad3c5e290cca400b Mon Sep 17 00:00:00 2001 From: Michael Birtwell Date: Tue, 14 Jun 2022 15:27:53 +0100 Subject: [PATCH] Fix returning tuples of lists of arrays from RPCs When serialising a list of objects `_send_rpc_value` makes a copy of the upcoming tags to pass repeatedly to the recursive call. Then uses `_skip_rpc_value` to skip over the tags that should have been processed. This didn't handle numpy arrays so, after processing a list of arrays it got out of sync and failed. Signed-off-by: Michael Birtwell --- artiq/coredevice/comm_kernel.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/artiq/coredevice/comm_kernel.py b/artiq/coredevice/comm_kernel.py index 2d529b6f9..930430b5e 100644 --- a/artiq/coredevice/comm_kernel.py +++ b/artiq/coredevice/comm_kernel.py @@ -418,6 +418,9 @@ class CommKernel: self._skip_rpc_value(tags) elif tag == "r": self._skip_rpc_value(tags) + elif tag == "a": + _ndims = tags.pop(0) + self._skip_rpc_value(tags) else: pass