From 5046e4d9630fc7a80a79e119c1188a7d68394f53 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ma=C3=ABl=20Madon?= <mael.madon@irit.fr>
Date: Thu, 27 Oct 2022 11:26:06 +0200
Subject: [PATCH] fix: bug where some sessions were not pointing to their
 expected predecessor, + refac

---
 src/user_session_builder.py | 23 ++++++++++-------------
 1 file changed, 10 insertions(+), 13 deletions(-)

diff --git a/src/user_session_builder.py b/src/user_session_builder.py
index a6d3abb..f23eae9 100644
--- a/src/user_session_builder.py
+++ b/src/user_session_builder.py
@@ -30,10 +30,10 @@ class User:
         self.dynamic_reduction = dynamic_reduction
         if dynamic_reduction:
             # set of sessions having unfinished jobs, at time t
-            self.sessions_in_progress = set()
+            self.__sessions_in_progress = set()
 
             # finished sessions, constituting the minimal list of dependencies for a session starting at time t
-            self.current_dep = set()
+            self.__current_dep = set()
 
         self.build_graph_rep = build_graph_rep
         if build_graph_rep:
@@ -89,17 +89,17 @@ class User:
             # Move the sessions recently finished from the set `_in_progress`
             # to the set `current_dep`, removing all their neighbours in the
             # dependancy graph from the set `current_dep` to keep it minimal
-            for s_id in self.sessions_in_progress.copy():
+            for s_id in self.__sessions_in_progress.copy():
                 sess = self.sessions[s_id]
 
                 if date_now > sess.max_finish_time:  # ie sess is finished
-                    self.sessions_in_progress.discard(s_id)
-                    self.current_dep = self.current_dep - set(
+                    self.__sessions_in_progress.discard(s_id)
+                    self.__current_dep = self.__current_dep - set(
                         sess.preceding_sessions)
-                    self.current_dep.add(s_id)
+                    self.__current_dep.add(s_id)
 
             # Add dependencies to active session
-            for s_id in self.current_dep:
+            for s_id in self.__current_dep:
                 sess = self.sessions[s_id]
                 think_time = date_now - sess.max_finish_time
 
@@ -114,12 +114,9 @@ class User:
     def __create_new_session(self, date_now):
         """Create a new active session and achive the old one"""
 
-        if self.__active_session_id > 0:
-            # Archive active session and increment active session_id
-            active_session = self.sessions[self.__active_session_id]
-            if self.dynamic_reduction and date_now <= active_session.max_finish_time:
-                self.sessions_in_progress.add(self.__active_session_id)
-
+        # Archive active session and increment active_session_id
+        if self.dynamic_reduction and self.__active_session_id > 0:
+            self.__sessions_in_progress.add(self.__active_session_id)
         self.__active_session_id += 1
 
         # Create new session
-- 
GitLab