]> code.delx.au - bg-scripts/blobdiff - asyncsched.py
tabs -> spaces
[bg-scripts] / asyncsched.py
index cae871306b93b3df6096dd01bfbda203aaf894f6..22eb78808e1e307ba3ef2dd01ee8e671d43fa020 100644 (file)
@@ -11,58 +11,58 @@ tasks = []
 running = False
 
 class Task(object):
 running = False
 
 class Task(object):
-       def __init__(self, delay, func, args=[], kwargs={}):
-               self.time = time.time() + delay
-               self.func = lambda: func(*args, **kwargs)
-       
-       def __cmp__(self, other):
-               return cmp(self.time, other.time)
+    def __init__(self, delay, func, args=[], kwargs={}):
+        self.time = time.time() + delay
+        self.func = lambda: func(*args, **kwargs)
+    
+    def __cmp__(self, other):
+        return cmp(self.time, other.time)
 
 
-       def __call__(self):
-               f = self.func
-               self.func = None
-               if f:
-                       return f()
+    def __call__(self):
+        f = self.func
+        self.func = None
+        if f:
+            return f()
 
 
-       def cancel(self):
-               assert self.func is not None
-               self.func = None
+    def cancel(self):
+        assert self.func is not None
+        self.func = None
 
 def schedule(delay, func, args=[], kwargs={}):
 
 def schedule(delay, func, args=[], kwargs={}):
-       task = Task(delay, func, args, kwargs)
-       heapq.heappush(tasks, task)
-       return task
+    task = Task(delay, func, args, kwargs)
+    heapq.heappush(tasks, task)
+    return task
 
 def loop(timeout=30.0, use_poll=False):
 
 def loop(timeout=30.0, use_poll=False):
-       global running
-       running = True
-       oldhandler = signal.signal(signal.SIGTERM, exit)
+    global running
+    running = True
+    oldhandler = signal.signal(signal.SIGTERM, exit)
 
 
-       if use_poll:
-               if hasattr(select, 'poll'):
-                       poll_fun = asyncore.poll3
-               else:
-                       poll_fun = asyncore.poll2
-       else:
-               poll_fun = asyncore.poll
+    if use_poll:
+        if hasattr(select, 'poll'):
+            poll_fun = asyncore.poll3
+        else:
+            poll_fun = asyncore.poll2
+    else:
+        poll_fun = asyncore.poll
 
 
-       while running:
-               now = time.time()
-               while tasks and tasks[0].time < now:
-                       task = heapq.heappop(tasks)
-                       task()
+    while running:
+        now = time.time()
+        while tasks and tasks[0].time < now:
+            task = heapq.heappop(tasks)
+            task()
 
 
-               t = timeout
-               if tasks:
-                       t = max(min(t, tasks[0].time - now), 0)
+        t = timeout
+        if tasks:
+            t = max(min(t, tasks[0].time - now), 0)
 
 
-               poll_fun(timeout=t)
-       
-       signal.signal(signal.SIGTERM, oldhandler)
+        poll_fun(timeout=t)
+    
+    signal.signal(signal.SIGTERM, oldhandler)
 
 def exit(*args):
 
 def exit(*args):
-       global running
-       running = False
+    global running
+    running = False
 
 __all__ = ("schedule", "loop", "exit")
 
 
 __all__ = ("schedule", "loop", "exit")