##// END OF EJS Templates
actually send only one kernel_info request...
actually send only one kernel_info request store the Future for the initial request, allowing subsequent requests to wait on the same pending reply. Previously, any incoming requests that arrived while waiting for the first reply would send their own request.

File last commit:

r18483:93ff19c4
r18563:0b2c2392
Show More
api_handlers.py
34 lines | 1.1 KiB | text/x-python | PythonLexer
Thomas Kluyver
Initial REST API for terminals
r18483 import json
from tornado import web
from ..base.handlers import IPythonHandler, json_errors
class TerminalRootHandler(IPythonHandler):
@web.authenticated
@json_errors
def get(self):
tm = self.application.terminal_manager
terms = [{'name': name} for name in tm.terminals]
self.finish(json.dumps(terms))
class TerminalHandler(IPythonHandler):
SUPPORTED_METHODS = ('GET', 'DELETE')
@web.authenticated
@json_errors
def get(self, name):
tm = self.application.terminal_manager
if name in tm.terminals:
self.finish(json.dumps({'name': name}))
else:
raise web.HTTPError(404, "Terminal not found: %r" % name)
@web.authenticated
@json_errors
def delete(self, name):
tm = self.application.terminal_manager
if name in tm.terminals:
tm.kill(name)
# XXX: Should this wait for terminal to finish before returning?
self.set_status(204)
self.finish()
else:
raise web.HTTPError(404, "Terminal not found: %r" % name)