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)