Commit e1a6e75b authored by ibuler's avatar ibuler

[Merge] with dev

parents a132613b 9698e4f8
...@@ -125,6 +125,10 @@ class Coco: ...@@ -125,6 +125,10 @@ class Coco:
else: else:
return True return True
def heartbeat_async(self):
t = threading.Thread(target=self.heartbeat)
t.start()
def handle_task(self, tasks): def handle_task(self, tasks):
for task in tasks: for task in tasks:
self.task_handler.handle(task) self.task_handler.handle(task)
...@@ -212,15 +216,10 @@ class Coco: ...@@ -212,15 +216,10 @@ class Coco:
def add_session(self, session): def add_session(self, session):
with self.lock: with self.lock:
self.sessions.append(session) self.sessions.append(session)
self.heartbeat() self.heartbeat_async()
def remove_session(self, session): def remove_session(self, session):
with self.lock: with self.lock:
logger.info("Remove session: {}".format(session)) logger.info("Remove session: {}".format(session))
for i in range(10):
if self.heartbeat():
self.sessions.remove(session) self.sessions.remove(session)
break self.heartbeat_async()
else:
time.sleep(1)
...@@ -134,8 +134,7 @@ class InteractiveServer: ...@@ -134,8 +134,7 @@ class InteractiveServer:
if q == '': if q == '':
result = self.assets result = self.assets
# 用户输入的是数字,可能想使用id唯一键搜索 # 用户输入的是数字,可能想使用id唯一键搜索
elif q.isdigit(): elif q.isdigit() and self.search_result and len(self.search_result) >= int(q):
if len(self.search_result) >= int(q):
result = [self.search_result[int(q) - 1]] result = [self.search_result[int(q) - 1]]
# 全匹配到则直接返回全匹配的 # 全匹配到则直接返回全匹配的
......
...@@ -126,8 +126,6 @@ class Session: ...@@ -126,8 +126,6 @@ class Session:
if len(data) == 0: if len(data) == 0:
msg = "Server close the connection" msg = "Server close the connection"
logger.info(msg) logger.info(msg)
for watcher in [self.client] + self._watchers + self._sharers:
watcher.send(msg.encode('utf-8'))
self.close() self.close()
break break
for watcher in [self.client] + self._watchers + self._sharers: for watcher in [self.client] + self._watchers + self._sharers:
......
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