diff --git a/notebook/base/zmqhandlers.py b/notebook/base/zmqhandlers.py index c922d102f5..94f8d13afb 100644 --- a/notebook/base/zmqhandlers.py +++ b/notebook/base/zmqhandlers.py @@ -158,14 +158,14 @@ def clear_cookie(self, *args, **kwargs): def open(self, *args, **kwargs): self.log.debug("Opening websocket %s", self.request.path) - + # start the pinging if self.ping_interval > 0: loop = ioloop.IOLoop.current() self.last_ping = loop.time() # Remember time of last ping self.last_pong = self.last_ping self.ping_callback = ioloop.PeriodicCallback( - self.send_ping, self.ping_interval, io_loop=loop, + self.send_ping, self.ping_interval, ) self.ping_callback.start() return super(WebSocketMixin, self).open(*args, **kwargs) @@ -175,7 +175,7 @@ def send_ping(self): if self.stream.closed() and self.ping_callback is not None: self.ping_callback.stop() return - + # check for timeout on pong. Make sure that we really have sent a recent ping in # case the machine with both server and client has been suspended since the last ping. now = ioloop.IOLoop.current().time() diff --git a/notebook/services/kernels/handlers.py b/notebook/services/kernels/handlers.py index 9477bdeb93..fc38f04aad 100644 --- a/notebook/services/kernels/handlers.py +++ b/notebook/services/kernels/handlers.py @@ -449,11 +449,8 @@ def on_close(self): for channel, stream in self.channels.items(): if stream is not None and not stream.closed(): stream.on_recv(None) - # close the socket directly, don't wait for the stream - socket = stream.socket stream.close() - socket.close() - + self.channels = {} self._close_future.set_result(None) diff --git a/notebook/services/kernels/kernelmanager.py b/notebook/services/kernels/kernelmanager.py index f939c76b77..af5e6e0deb 100644 --- a/notebook/services/kernels/kernelmanager.py +++ b/notebook/services/kernels/kernelmanager.py @@ -241,7 +241,6 @@ def stop_buffering(self, kernel_id): for stream in buffer_info['channels'].values(): if not stream.closed(): stream.on_recv(None) - stream.socket.close() stream.close() msg_buffer = buffer_info['buffer'] @@ -386,7 +385,7 @@ def initialize_culler(self): self.cull_interval, self.cull_interval_default) self.cull_interval = self.cull_interval_default self._culler_callback = PeriodicCallback( - self.cull_kernels, 1000*self.cull_interval, loop) + self.cull_kernels, 1000*self.cull_interval) self.log.info("Culling kernels with idle durations > %s seconds at %s second intervals ...", self.cull_idle_timeout, self.cull_interval) if self.cull_busy: