remove deferral.sleep's canceller, as it wasn't used anywhere and caused incompatibil...
[p2pool.git] / p2pool / util / deferral.py
index 20f5ec8..6f75b76 100644 (file)
@@ -1,6 +1,7 @@
 from __future__ import division
 
 import itertools
+import random
 import sys
 
 from twisted.internet import defer, reactor
@@ -11,6 +12,16 @@ def sleep(t):
     reactor.callLater(t, d.callback, None)
     return d
 
+def run_repeatedly(f, *args, **kwargs):
+    current_dc = [None]
+    def step():
+        delay = f(*args, **kwargs)
+        current_dc[0] = reactor.callLater(delay, step)
+    step()
+    def stop():
+        current_dc[0].cancel()
+    return stop
+
 class RetrySilentlyException(Exception):
     pass