Skip to content

Commit 317033f

Browse files
authored
Merge pull request #228 from minrk/clone-session
Use copy of kernel session for activity tracking
2 parents de3f6ac + 1a25575 commit 317033f

File tree

1 file changed

+13
-5
lines changed
  • kernel_gateway/services/kernels

1 file changed

+13
-5
lines changed

kernel_gateway/services/kernels/pool.py

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,12 @@
22
# Distributed under the terms of the Modified BSD License.
33
"""Kernel pools that track and delegate to kernels."""
44

5+
from jupyter_client.session import Session
6+
57
from tornado.locks import Semaphore
68
from tornado import gen
79

10+
811
class KernelPool(object):
912
"""Spawns a pool of kernels.
1013
@@ -105,9 +108,9 @@ def release(self, kernel_id):
105108
self.kernel_pool.append(kernel_id)
106109
self.kernel_semaphore.release()
107110

108-
def _on_reply(self, kernel_id, msg_list):
111+
def _on_reply(self, kernel_id, session, msg_list):
109112
"""Invokes the iopub callback registered for the `kernel_id` and passes
110-
it a deserialized list of kernel messsages.
113+
it a deserialized list of kernel messages.
111114
112115
Parameters
113116
----------
@@ -116,8 +119,8 @@ def _on_reply(self, kernel_id, msg_list):
116119
msg_list : list
117120
List of 0mq messages
118121
"""
119-
idents, msg_list = self.kernel_clients[kernel_id].session.feed_identities(msg_list)
120-
msg = self.kernel_clients[kernel_id].session.deserialize(msg_list)
122+
idents, msg_list = session.feed_identities(msg_list)
123+
msg = session.deserialize(msg_list)
121124
self.on_recv_funcs[kernel_id](msg)
122125

123126
def create_on_reply(self, kernel_id):
@@ -134,7 +137,12 @@ def create_on_reply(self, kernel_id):
134137
function
135138
Callback function taking a kernel ID and 0mq message list
136139
"""
137-
return lambda msg_list: self._on_reply(kernel_id, msg_list)
140+
kernel = self.kernel_clients[kernel_id]
141+
session = Session(
142+
config=kernel.session.config,
143+
key=kernel.session.key,
144+
)
145+
return lambda msg_list: self._on_reply(kernel_id, session, msg_list)
138146

139147
def on_recv(self, kernel_id, func):
140148
"""Registers a callback function for iopub messages from a particular

0 commit comments

Comments
 (0)