Merge branch 'master' of ralfj.de:saartuer
authorRalf Jung <post@ralfj.de>
Sun, 27 Oct 2013 15:51:21 +0000 (16:51 +0100)
committerRalf Jung <post@ralfj.de>
Sun, 27 Oct 2013 15:51:21 +0000 (16:51 +0100)
1  2 
waker.py

diff --combined waker.py
index 681de1b1af4985fe33e2d80ee6798e2844a43188,dc4627b3565d05882d8d1f4d6cb8a687aef01e08..4898c25ab31c0754f79699c97a0983477a8c23af
+++ b/waker.py
@@@ -1,24 -1,18 +1,23 @@@
  from libtuer import ThreadRepeater
 -from collections import namedtuple
  from threading import Lock
  
  SLEEP_TIME = 0.5
  
 -ToBeWoken = namedtuple('ToBeWoken','f period time_since_call one_shot')
 +class ToBeWoken:
 +      '''a simple struct storing information about a to-be-woken function'''
 +      def __init__(self, f, period, one_shot):
 +              self.f = f
 +              self.period = period
 +              self.time_since_call = 0
 +              self.one_shot = one_shot
  
  class Waker():
-       def __init__(self, sm):
-               self._sm = sm
-               self._t = ThreadRepeater(self._wake, SLEEP_TIME, name="Waker")
+       def __init__(self):
                self._tobewokens = []
                self._tobewokens_lock = Lock()
+               self._t = ThreadRepeater(self._wake, SLEEP_TIME, name="Waker")
        
-       def register(f, time, one_shot = False):
+       def register(self, f, time, one_shot = False):
                '''Register a function which is called approximately every <time> seconds (or just once, if one_shot is True). f should return quickly, or it will delay the waker!'''
                time = max(time//SLEEP_TIME, 1)
                with self._tobewokens_lock: