Skip to content

Commit 4141573

Browse files
authored
Merge pull request #353 from meeseeksmachine/auto-backport-of-pr-350-on-1.0.x
Backport PR #350 on branch 1.0.x (Await _connect and inline read_messages callback to _connect)
2 parents d43ef7f + 1d1a579 commit 4141573

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
@@ -131,7 +131,7 @@ def __init__(self, **kwargs):
131131
self.ws_future = Future()
132132
self.disconnected = False
133133

134-
async def _connect(self, kernel_id):
134+
async def _connect(self, kernel_id, message_callback):
135135
# websocket is initialized before connection
136136
self.ws = None
137137
self.kernel_id = kernel_id
@@ -147,6 +147,12 @@ async def _connect(self, kernel_id):
147147
self.ws_future = websocket_connect(request)
148148
self.ws_future.add_done_callback(self._connection_done)
149149

150+
loop = IOLoop.current()
151+
loop.add_future(
152+
self.ws_future,
153+
lambda future: self._read_messages(message_callback)
154+
)
155+
150156
def _connection_done(self, fut):
151157
if not self.disconnected and fut.exception() is None: # prevent concurrent.futures._base.CancelledError
152158
self.ws = fut.result()
@@ -185,18 +191,13 @@ async def _read_messages(self, callback):
185191

186192
if not self.disconnected: # if websocket is not disconnected by client, attept to reconnect to Gateway
187193
self.log.info("Attempting to re-establish the connection to Gateway: {}".format(self.kernel_id))
188-
self._connect(self.kernel_id)
189194
loop = IOLoop.current()
190-
loop.add_future(self.ws_future, lambda future: self._read_messages(callback))
195+
loop.spawn_callback(self._connect, self.kernel_id, callback)
191196

192197
def on_open(self, kernel_id, message_callback, **kwargs):
193198
"""Web socket connection open against gateway server."""
194-
self._connect(kernel_id)
195199
loop = IOLoop.current()
196-
loop.add_future(
197-
self.ws_future,
198-
lambda future: self._read_messages(message_callback)
199-
)
200+
loop.spawn_callback(self._connect, kernel_id, message_callback)
200201

201202
def on_message(self, message):
202203
"""Send message to gateway server."""

0 commit comments

Comments
 (0)