svghmi/svghmi_server.py
branchsvghmi
changeset 3272 c8182e066545
parent 3271 561dbd1e3e04
child 3273 08a5a019bed2
equal deleted inserted replaced
3271:561dbd1e3e04 3272:c8182e066545
   103             self.free_index(session.session_index)
   103             self.free_index(session.session_index)
   104             self.session_count -= 1
   104             self.session_count -= 1
   105         session.kill()
   105         session.kill()
   106         
   106         
   107     def close_all(self):
   107     def close_all(self):
   108         with self.lock:
   108         for session in self.iter_sessions():
   109             close_list = list(self.multiclient_sessions)
   109             self.unregister(session)
   110             if self.watchdog_session:
       
   111                 close_list.append(self.watchdog_session)
       
   112             for session in close_list:
       
   113                 self.unregister(session)
       
   114         
   110         
   115     def iter_sessions(self):
   111     def iter_sessions(self):
   116         with self.lock:
   112         with self.lock:
   117             nxt_session = self.watchdog_session
   113             lst = list(self.multiclient_sessions)
   118         if nxt_session is not None:
   114             if self.watchdog_session is not None:
   119             yield nxt_session
   115                 lst = [self.watchdog_session]+lst
   120         idx = 0
   116             for nxt_session in lst:
   121         while True:
   117                 yield nxt_session
   122             with self.lock:
       
   123                 if idx >= len(self.multiclient_sessions):
       
   124                     return
       
   125                 nxt_session = self.multiclient_sessions[idx]
       
   126             yield nxt_session
       
   127             idx += 1
       
   128 
   118 
   129 
   119 
   130 svghmi_session_manager = HMISessionMgr()
   120 svghmi_session_manager = HMISessionMgr()
   131 
   121 
   132 
   122