mirror of https://github.com/huashengdun/webssh
Use daemon thread for ssh_connect
parent
20ba6bad36
commit
12bac55e51
10
main.py
10
main.py
|
@ -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):
|
||||||
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))
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue