svghmi/svghmi_server.py
branchsvghmi
changeset 3273 08a5a019bed2
parent 3272 c8182e066545
child 3278 2bcfbea6a2a8
equal deleted inserted replaced
3272:c8182e066545 3273:08a5a019bed2
   101                 except KeyError:
   101                 except KeyError:
   102                     return
   102                     return
   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         for session in self.iter_sessions():
   108         for session in self.iter_sessions():
   109             self.unregister(session)
   109             self.unregister(session)
   110         
   110 
   111     def iter_sessions(self):
   111     def iter_sessions(self):
   112         with self.lock:
   112         with self.lock:
   113             lst = list(self.multiclient_sessions)
   113             lst = list(self.multiclient_sessions)
   114             if self.watchdog_session is not None:
   114             if self.watchdog_session is not None:
   115                 lst = [self.watchdog_session]+lst
   115                 lst = [self.watchdog_session]+lst
   245     res = 0
   245     res = 0
   246     finished = False
   246     finished = False
   247     while not(finished):
   247     while not(finished):
   248         svghmi_wait()
   248         svghmi_wait()
   249         for svghmi_session in svghmi_session_manager.iter_sessions():
   249         for svghmi_session in svghmi_session_manager.iter_sessions():
   250             # TODO make svghmi_send_collect waiting only once per
       
   251             # svghmi_session_manager.iter_sessions cycle
       
   252             res = svghmi_send_collect(
   250             res = svghmi_send_collect(
   253                 svghmi_session.session_index,
   251                 svghmi_session.session_index,
   254                 ctypes.byref(size), ctypes.byref(ptr))
   252                 ctypes.byref(size), ctypes.byref(ptr))
   255             if res == 0:
   253             if res == 0:
   256                 svghmi_session.sendMessage(
   254                 svghmi_session.sendMessage(