Author: rshortt
Date: Tue Jan 29 14:41:00 2008
New Revision: 3012

Log:
Remove the call to reactor.run() and replace it with a loop of our own.  I also 
added a call to dispatcher.dispatchers_run() inside of our step() so it gets 
called every iteration of the loop like it was intended to.  Beware that if the 
loop is idle it won't get called.  Comments included.


Modified:
   trunk/base/src/notifier/pynotifier/nf_twisted.py

Modified: trunk/base/src/notifier/pynotifier/nf_twisted.py
==============================================================================
--- trunk/base/src/notifier/pynotifier/nf_twisted.py    (original)
+++ trunk/base/src/notifier/pynotifier/nf_twisted.py    Tue Jan 29 14:41:00 2008
@@ -223,19 +223,36 @@
         except:
             log.error("problem running reactor - exiting")
             raise SystemExit
+        dispatch.dispatcher_run()
     else:
         log.info("reactor stopped - exiting")
         raise SystemExit
 
 
 def loop():
-    reactor.run()
+    """
+    Instead of calling reactor.run() here we must call step() so we get a
+    chance to call dispatch.dispatcher_run().  Otherwise the dispatchers 
+    would have to be run in a timer, making something like the 'step' signal
+    not getting called every iteration of the main loop like it was intended.
+
+    We could also decide between reactor.run() and step() and if we use step()
+    just setup a Timer for the dispatchers at a reasonable rate.  ie:
+
+        global __dispatch_timer
+        __dispatch_timer = task.LoopingCall(dispatch.dispatcher_run)
+        __dispatch_timer.start(dispatch.MIN_TIMER/1000.0) # 10x / second
+        # or
+        # __dispatch_timer.start(1.0/30) # 30x / second
+    """
+    while True:
+        try:
+            step()
+        except:
+            log.debug("exiting loop")
+            break
 
 
 def _init():
-    global __dispatch_timer
-    __dispatch_timer = task.LoopingCall(dispatch.dispatcher_run)
-    __dispatch_timer.start(dispatch.MIN_TIMER/1000.0)
-
     reactor.startRunning(installSignalHandlers=True)
 

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Freevo-cvslog mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freevo-cvslog

Reply via email to