# HG changeset patch # User Edouard Tisserant # Date 1626077272 -7200 # Node ID c8182e0665456cc0efb7d8deeca2f3af1c6fa309 # Parent 561dbd1e3e046da28b24197aeb262b46ba229e4d SVGHMI: Fixed iterator in session manager. Getting closer to working multiclient, to be continued. diff -r 561dbd1e3e04 -r c8182e066545 svghmi/svghmi_server.py --- a/svghmi/svghmi_server.py Fri Jul 09 15:47:43 2021 +0200 +++ b/svghmi/svghmi_server.py Mon Jul 12 10:07:52 2021 +0200 @@ -105,26 +105,16 @@ session.kill() def close_all(self): - with self.lock: - close_list = list(self.multiclient_sessions) - if self.watchdog_session: - close_list.append(self.watchdog_session) - for session in close_list: - self.unregister(session) + for session in self.iter_sessions(): + self.unregister(session) def iter_sessions(self): with self.lock: - nxt_session = self.watchdog_session - if nxt_session is not None: - yield nxt_session - idx = 0 - while True: - with self.lock: - if idx >= len(self.multiclient_sessions): - return - nxt_session = self.multiclient_sessions[idx] - yield nxt_session - idx += 1 + lst = list(self.multiclient_sessions) + if self.watchdog_session is not None: + lst = [self.watchdog_session]+lst + for nxt_session in lst: + yield nxt_session svghmi_session_manager = HMISessionMgr()