[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