[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] XendDomain.py, scheduler.py:



ChangeSet 1.1456, 2005/05/18 19:08:47+01:00, cl349@xxxxxxxxxxxxxxxxxxxx

        XendDomain.py, scheduler.py:
          Simplify scheduler.
        Signed-off-by: Christian Limpach <Christian.Limpach@xxxxxxxxxxxx>



 XendDomain.py |    9 +++------
 scheduler.py  |   43 +++++++++++++++++++------------------------
 2 files changed, 22 insertions(+), 30 deletions(-)


diff -Nru a/tools/python/xen/xend/XendDomain.py 
b/tools/python/xen/xend/XendDomain.py
--- a/tools/python/xen/xend/XendDomain.py       2005-05-18 15:02:23 -04:00
+++ b/tools/python/xen/xend/XendDomain.py       2005-05-18 15:02:23 -04:00
@@ -19,7 +19,7 @@
 from XendError import XendError
 from XendLogging import log
 
-from scheduler import Scheduler
+import scheduler
 
 from xen.xend.server import channel
 
@@ -83,9 +83,6 @@
     """Table of pending domain shutdowns, indexed by domain id."""
     shutdowns_by_id = {}
 
-    """Table of delayed calls."""
-    scheduler = Scheduler()
-    
     def __init__(self):
         # Hack alert. Python does not support mutual imports, but 
XendDomainInfo
         # needs access to the XendDomain instance to look up domains. 
Attempting
@@ -290,7 +287,7 @@
             else:
                 self._delete_domain(d.id)
         if cleanup and do_domain_restarts:
-            self.scheduler.now(self.domain_restarts)
+            scheduler.now(self.domain_restarts)
 
     def update_domain(self, id):
         """Update the saved info for a domain.
@@ -506,7 +503,7 @@
                 timeout = min(timeout, shutdown.getTimeout())
         if self.shutdowns_by_id:
             # Pending shutdowns remain - reschedule.
-            self.scheduler.later(timeout, self.domain_shutdowns)
+            scheduler.later(timeout, self.domain_shutdowns)
 
     def domain_restart_schedule(self, id, reason, force=False):
         """Schedule a restart for a domain if it needs one.
diff -Nru a/tools/python/xen/xend/scheduler.py 
b/tools/python/xen/xend/scheduler.py
--- a/tools/python/xen/xend/scheduler.py        2005-05-18 15:02:23 -04:00
+++ b/tools/python/xen/xend/scheduler.py        2005-05-18 15:02:23 -04:00
@@ -1,29 +1,24 @@
 import threading
 
-class Scheduler:
+def later(delay, fn, args=(), kwargs={}):
+    """Schedule a function to be called later.
 
-    def later(self, _delay, _fn, args=(), kwargs={}):
-        """Schedule a function to be called later.
+    @param _delay: delay in seconds
+    @param _fn:    function
+    @param args:   arguments (list)
+    @param kwargs  keyword arguments (map)
+    """
+    timer = threading.Timer(delay, fn, args=args, kwargs=kwargs)
+    timer.start()
+    return timer
 
-        @param _delay: delay in seconds
-        @param _fn:    function
-        @param args:   arguments (list)
-        @param kwargs  keyword arguments (map)
-        """
-        runargs = [ _fn, args, kwargs ]
-        timer = threading.Timer(_delay, self._run, args=runargs)
-        timer.start()
+def now(fn, args=(), kwargs={}):
+    """Schedule a function to be called now.
 
-    def now(self, _fn, args=(), kwargs={}):
-        """Schedule a function to be called now.
-
-        @param _fn:    function
-        @param args:   arguments (list)
-        @param kwargs  keyword arguments (map)
-        """
-        runargs = [ _fn, args, kwargs ]
-        thread = threading.Thread(target=self._run, args=runargs)
-        thread.start()
-
-    def _run(self, fn, args, kwargs):
-        fn(*args, **kwargs)
+    @param _fn:    function
+    @param args:   arguments (list)
+    @param kwargs  keyword arguments (map)
+    """
+    thread = threading.Thread(target=fn, args=args, kwargs=kwargs)
+    thread.start()
+    return thread

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.