From a1a43aad6c4c148194f8ca892a66b0510fe1e823 Mon Sep 17 00:00:00 2001
From: sldesnoo-Delft <s.l.desnoo@tudelft.nl>
Date: Wed, 30 Aug 2023 09:57:00 +0200
Subject: [PATCH] Fixed bug in lazy reset time

---
 pulse_lib/segments/segment_acquisition.py | 4 ++++
 pulse_lib/segments/segment_base.py        | 2 ++
 2 files changed, 6 insertions(+)

diff --git a/pulse_lib/segments/segment_acquisition.py b/pulse_lib/segments/segment_acquisition.py
index 38e68fb3..31cbceb2 100644
--- a/pulse_lib/segments/segment_acquisition.py
+++ b/pulse_lib/segments/segment_acquisition.py
@@ -141,6 +141,8 @@ class segment_acquisition():
         if self.is_slice or time is None:
             self._reset_time(time)
         else:
+            if self._pending_reset_time is not None:
+                time = np.fmax(time, self._pending_reset_time)
             self._pending_reset_time = time
 
     def _lazy_reset_time(self):
@@ -274,6 +276,8 @@ class segment_acquisition():
     def total_time(self):
         if not self.render_mode:
             # use end time from numpy array instead of individual lookup of data elements.
+            if self._pending_reset_time is not None:
+                return np.fmax(self._pending_reset_time, self._end_times)
             return self._end_times
 #            return self.data.total_time
         else:
diff --git a/pulse_lib/segments/segment_base.py b/pulse_lib/segments/segment_base.py
index 2c7c8ea5..ca0d04cf 100644
--- a/pulse_lib/segments/segment_base.py
+++ b/pulse_lib/segments/segment_base.py
@@ -237,6 +237,8 @@ class segment_base():
     @property
     def total_time(self):
         if not self.render_mode:
+            if self._pending_reset_time is not None:
+                return np.fmax(self._pending_reset_time, self._end_times)
             # use end time from numpy array instead of individual lookup of data elements.
             return self._end_times
 #            return self.data.total_time
-- 
GitLab