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