From a3606d9e4d3dcdf404949c5293545ac0d9ee5803 Mon Sep 17 00:00:00 2001 From: Anton Ryzhov Date: Thu, 20 Jun 2013 14:03:49 +0400 Subject: Fixed scheduler wait loop Do fastloop wait until task run time --- sleekxmpp/xmlstream/scheduler.py | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/sleekxmpp/xmlstream/scheduler.py b/sleekxmpp/xmlstream/scheduler.py index 2efa7d1e..e6fae37a 100644 --- a/sleekxmpp/xmlstream/scheduler.py +++ b/sleekxmpp/xmlstream/scheduler.py @@ -157,16 +157,15 @@ class Scheduler(object): if wait <= 0.0: newtask = self.addq.get(False) else: - if wait > 3.0: - wait = 3.0 newtask = None - elapsed = 0 while self.run and \ not self.stop.is_set() and \ newtask is None and \ - elapsed < wait: - newtask = self.addq.get(True, self.wait_timeout) - elapsed += self.wait_timeout + wait > 0: + try: + newtask = self.addq.get(True, min(wait, self.wait_timeout)) + except QueueEmpty: # Nothing to add, nothing to do. Check run flags and continue waiting. + wait -= self.wait_timeout except QueueEmpty: # Time to run some tasks, and no new tasks to add. self.schedule_lock.acquire() # select only those tasks which are to be executed now -- cgit v1.2.3