Skip to content

Commit 457059a

Browse files
committed
await _connect and inline read_messages callback to _connect
1 parent b5997a6 commit 457059a

File tree

1 file changed

+9
-8
lines changed

1 file changed

+9
-8
lines changed

jupyter_server/gateway/handlers.py

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ def __init__(self, **kwargs):
134134
self.ws_future = Future()
135135
self.disconnected = False
136136

137-
async def _connect(self, kernel_id):
137+
async def _connect(self, kernel_id, message_callback):
138138
# websocket is initialized before connection
139139
self.ws = None
140140
self.kernel_id = kernel_id
@@ -150,6 +150,12 @@ async def _connect(self, kernel_id):
150150
self.ws_future = websocket_connect(request)
151151
self.ws_future.add_done_callback(self._connection_done)
152152

153+
loop = IOLoop.current()
154+
loop.add_future(
155+
self.ws_future,
156+
lambda future: self._read_messages(message_callback)
157+
)
158+
153159
def _connection_done(self, fut):
154160
if not self.disconnected and fut.exception() is None: # prevent concurrent.futures._base.CancelledError
155161
self.ws = fut.result()
@@ -188,18 +194,13 @@ async def _read_messages(self, callback):
188194

189195
if not self.disconnected: # if websocket is not disconnected by client, attept to reconnect to Gateway
190196
self.log.info("Attempting to re-establish the connection to Gateway: {}".format(self.kernel_id))
191-
self._connect(self.kernel_id)
192197
loop = IOLoop.current()
193-
loop.add_future(self.ws_future, lambda future: self._read_messages(callback))
198+
loop.spawn_callback(self._connect, self.kernel_id, callback)
194199

195200
def on_open(self, kernel_id, message_callback, **kwargs):
196201
"""Web socket connection open against gateway server."""
197-
self._connect(kernel_id)
198202
loop = IOLoop.current()
199-
loop.add_future(
200-
self.ws_future,
201-
lambda future: self._read_messages(message_callback)
202-
)
203+
loop.spawn_callback(self._connect, kernel_id, message_callback)
203204

204205
def on_message(self, message):
205206
"""Send message to gateway server."""

0 commit comments

Comments
 (0)