changeset 2:dd3e08bbe365 draft

Fix timing in decide()
author Stian Ellingsen <stian@plaimi.net>
date Mon, 15 Apr 2013 11:36:05 +0200
parents f5b8d698c004
children cc0d934e20d9
files q
diffstat 1 files changed, 8 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/q
+++ b/q
@@ -124,14 +124,14 @@
 
     def decide(self):
         """Figure out whether to post a question or a hint."""
-        dt = self.last_decide - self.answered
-        if self.answered:
-            self.ask()
-            reactor.callLater(max(0, 10 + dt), self.decide)
-        else:
-            self.hint()
-            reactor.callLater(10, self.decide)
-        self.last_decide = time()
+        t = time()
+        f, dt = ((self.ask, self.answered + 5 - t) if self.answered else
+                 (self.hint, self.last_decide + 10 - t))
+        if dt < 0.5:
+            f()
+            self.last_decide = t
+            dt = 5
+        reactor.callLater(min(5, dt), self.decide)
 
     def ask(self):
         """Ask a question."""