From f8f7eb71db8d88f12026c7f69e375ac95c7afc29 Mon Sep 17 00:00:00 2001 From: Toon Verstraelen Date: Tue, 22 Sep 2026 19:17:19 +0200 Subject: [PATCH] Create _control_lock before its users --- ipykernel/kernelbase.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/ipykernel/kernelbase.py b/ipykernel/kernelbase.py index 3f709d0aa..9c245d214 100644 --- a/ipykernel/kernelbase.py +++ b/ipykernel/kernelbase.py @@ -567,11 +567,12 @@ def start(self): """register dispatchers for streams""" self.io_loop = ioloop.IOLoop.current() + # Create the lock before the control_stream, so the lock is guaranteed to be available. + self._control_lock = asyncio.Lock() + if self.control_stream: self.control_stream.on_recv(self.dispatch_control, copy=False) - self._control_lock = asyncio.Lock() - if self.shell_stream: if self.shell_channel_thread: self.shell_channel_thread.manager.set_on_recv_callback(self.shell_main)