[tor-commits] [torbel/master] Fix problem with reactor and LoopingCall.

sebastian at torproject.org sebastian at torproject.org
Sun Sep 4 07:25:40 UTC 2011


commit e668dd1997b902ffc19c165d1400a98ee2e62938
Author: Harry Bock <hbock at ele.uri.edu>
Date:   Tue Sep 7 17:09:31 2010 -0400

    Fix problem with reactor and LoopingCall.
    
    Reactor would not properly schedule connectTCP calls when
    LoopingCall was used.
    Might only be an issue with older Twisted versions (from Lenny, circa
    8.1.0), but replacing it with callLater seems to work for now.
---
 scheduler.py |    7 ++-----
 1 files changed, 2 insertions(+), 5 deletions(-)

diff --git a/scheduler.py b/scheduler.py
index dc0d1d4..e246732 100644
--- a/scheduler.py
+++ b/scheduler.py
@@ -52,7 +52,6 @@ class TestScheduler:
         self.max_pending_circuits = int(self.max_running_circuits * max_pending_factor)
 
         self.export_interval = export_interval
-        self.export_task = task.LoopingCall(self.export)
         self.init()
 
     def init(self):
@@ -64,11 +63,12 @@ class TestScheduler:
         """ Start the scheduler. """
         # Start the export looping task, but don't run it immediately -
         # wait until the first export_interval (converted to seconds) to pass.
-        self.export_task.start(self.export_interval * 60, now = False)
+        reactor.callLater(self.export_interval * 60, self.export)
 
     def export(self):
         """ Force the controller to export all test data. """
         self.controller.export()
+        reactor.callLater(self.export_interval * 60, self.export)
                 
     def next(self):
         """ Return a set of routers to be tested. May block until enough routers
@@ -133,9 +133,6 @@ class TestScheduler:
 
     def stop(self):
         """ Stop the scheduler. """
-        # Stop our export task.
-        if self.export_task.running:
-            self.export_task.stop()
         with self.pending_circuit_cond:
             self.pending_circuit_cond.notify()
             self.terminated = True





More information about the tor-commits mailing list