From 3315760957c1339e1df2f799b43cd8b7e56772be Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner <inform@tiker.net> Date: Sun, 13 May 2012 17:35:44 -0400 Subject: [PATCH] Improve progress feedback from scheduler. --- loopy/schedule.py | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/loopy/schedule.py b/loopy/schedule.py index f38928817..686f6f8e7 100644 --- a/loopy/schedule.py +++ b/loopy/schedule.py @@ -184,20 +184,23 @@ class ScheduleDebugger: self.elapsed_store = 0 self.start() - self.wrote_status = False + self.wrote_status = 0 self.update() def update(self): - if (self.success_counter + self.dead_end_counter) % 50 == 0: - if self.debug_length or self.elapsed_time() > 1: - sys.stdout.write("\rscheduling... %d successes, " - "%d dead ends (longest %d)" % ( - self.success_counter, - self.dead_end_counter, - len(self.longest_rejected_schedule))) - sys.stdout.flush() - self.wrote_status = True + if ((self.success_counter + self.dead_end_counter) % 50 == 0 + and self.success_counter > 2 + # ^ someone's waiting for the scheduler to go through *all* options + and (self.debug_length or self.elapsed_time() > 1) + ): + sys.stdout.write("\rscheduling... %d successes, " + "%d dead ends (longest %d)" % ( + self.success_counter, + self.dead_end_counter, + len(self.longest_rejected_schedule))) + sys.stdout.flush() + self.wrote_status = 2 def log_success(self, schedule): self.success_counter += 1 @@ -219,6 +222,10 @@ class ScheduleDebugger: return self.elapsed_store + time() - self.start_time def stop(self): + if self.wrote_status == 2: + sys.stdout.write("\r"+80*" "+"\n") + self.wrote_status = 1 + from time import time self.elapsed_store += time()-self.start_time -- GitLab