Commit 12bac55e by Sheng

Use daemon thread for ssh_connect

parent 20ba6bad
...@@ -222,7 +222,7 @@ class IndexHandler(MixinHandler, tornado.web.RequestHandler): ...@@ -222,7 +222,7 @@ class IndexHandler(MixinHandler, tornado.web.RequestHandler):
chan = ssh.invoke_shell(term='xterm') chan = ssh.invoke_shell(term='xterm')
chan.setblocking(0) chan.setblocking(0)
worker = Worker(ssh, chan, dst_addr) worker = Worker(ssh, chan, dst_addr)
IOLoop.current().call_later(DELAY, recycle, worker) worker.src_addr = self.get_client_addr()
return worker return worker
def ssh_connect_wrapped(self, future): def ssh_connect_wrapped(self, future):
...@@ -243,18 +243,18 @@ class IndexHandler(MixinHandler, tornado.web.RequestHandler): ...@@ -243,18 +243,18 @@ class IndexHandler(MixinHandler, tornado.web.RequestHandler):
status = None status = None
future = Future() future = Future()
threading.Thread( t = threading.Thread(target=self.ssh_connect_wrapped, args=(future,))
target=self.ssh_connect_wrapped, args=(future,) t.setDaemon(True)
).start() t.start()
try: try:
worker = yield future worker = yield future
except Exception as exc: except Exception as exc:
status = str(exc) status = str(exc)
else: else:
worker.src_addr = self.get_client_addr()
worker_id = worker.id worker_id = worker.id
workers[worker_id] = worker workers[worker_id] = worker
IOLoop.current().call_later(DELAY, recycle, worker)
self.write(dict(id=worker_id, status=status)) self.write(dict(id=worker_id, status=status))
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment