From 422bcb2176abd3442d46d6eab3a92ecb6d310bd4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Berkay=20=C3=9Cr=C3=BCn?= Date: Mon, 4 Sep 2023 15:29:07 +0000 Subject: [PATCH] Fix progress bar flickering --- controller.py | 10 +++------- hdf5logger.py | 3 +++ 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/controller.py b/controller.py index 48628c7..7c826ae 100755 --- a/controller.py +++ b/controller.py @@ -697,13 +697,12 @@ def controller( # Handlers are used for a graceful exit, in case of a signal register_signal_handlers(clogger, queue_output, p_logger) - pbar = tqdm( - total=len(faultlist), desc="Simulating faults", disable=not len(faultlist) - ) itter = 0 while 1: if stop_signal_received: - clogger.info("Stopping the execution") + clogger.info( + "Stop signal received, finishing the current write operation..." + ) queue_output.put({"index": -4}) for p in p_list: @@ -781,8 +780,6 @@ def controller( # Find finished processes p["process"].join(timeout=0) if p["process"].is_alive() is False: - # Update the progress bar - pbar.update(1) # Recalculate moving average p_time_list.append(current_time - p["start_time"]) len_p_time_list = len(p_time_list) @@ -795,7 +792,6 @@ def controller( break clogger.debug("{} experiments remaining in queue".format(queue_output.qsize())) - pbar.close() p_logger.join() clogger.debug("Done with qemu and logger") diff --git a/hdf5logger.py b/hdf5logger.py index bd137b0..e6da03f 100644 --- a/hdf5logger.py +++ b/hdf5logger.py @@ -502,6 +502,7 @@ def hdf5collector( ): n._f_remove(recursive=True) + pbar = tqdm(total=num_exp, desc="Simulating faults", disable=not num_exp) while num_exp > 0 or log_goldenrun or log_pregoldenrun or log_config: # readout queue and get next output from qemu. Will block exp = queue_output.get() @@ -525,6 +526,7 @@ def hdf5collector( ) ) num_exp = num_exp - 1 + pbar.update(1) elif exp["index"] == -2 and log_pregoldenrun: if "Pregoldenrun" in f.root: raise ValueError("Pregoldenrun already exists!") @@ -581,5 +583,6 @@ def hdf5collector( del exp + pbar.close() f.close() logger.debug("Data Logging done")