gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r22719 - gnunet-planetlab/gplmt


From: gnunet
Subject: [GNUnet-SVN] r22719 - gnunet-planetlab/gplmt
Date: Tue, 17 Jul 2012 16:36:57 +0200

Author: wachs
Date: 2012-07-17 16:36:57 +0200 (Tue, 17 Jul 2012)
New Revision: 22719

Modified:
   gnunet-planetlab/gplmt/Tasks.py
   gnunet-planetlab/gplmt/Worker.py
Log:
- multithreaded worker execution

Modified: gnunet-planetlab/gplmt/Tasks.py
===================================================================
--- gnunet-planetlab/gplmt/Tasks.py     2012-07-17 14:09:23 UTC (rev 22718)
+++ gnunet-planetlab/gplmt/Tasks.py     2012-07-17 14:36:57 UTC (rev 22719)
@@ -155,3 +155,16 @@
         for child in root:
             handle_child (child, self.l)
         #print_sequence (self.l)
+    def copy (self):
+        t = Tasks (self.filename, self.logger)
+        # Create a copy of the task list as described in 
+        # http://docs.python.org/library/copy.html
+        t.l = self.l[:]
+        return t
+    def get (self):
+        if (len (self.l) > 0):
+            item = self.l[0]
+            self.l.remove(item)
+            return item
+        else:
+            return None

Modified: gnunet-planetlab/gplmt/Worker.py
===================================================================
--- gnunet-planetlab/gplmt/Worker.py    2012-07-17 14:09:23 UTC (rev 22718)
+++ gnunet-planetlab/gplmt/Worker.py    2012-07-17 14:36:57 UTC (rev 22719)
@@ -36,14 +36,22 @@
         counter -= 1
 
 class NodeWorkerThread (threading.Thread):
-    def __init__(self, threadID, name, counter):
+    def __init__(self, threadID, name, tasks):
+        threading.Thread.__init__(self)
         self.threadID = threadID
         self.name = name
-        self.counter = counter
-        threading.Thread.__init__(self)
+        self.tasks = tasks
     def run(self):
         print "Starting " + self.name
-        print_time(self.name, self.counter, 5)
+        task = self.tasks.get()
+        while (None != task):
+            if (task.__class__.__name__ == "Task"):
+                print self.name + " : Running task " + task.name
+            elif (task.__class__.__name__ == "Taskset"):
+                print self.name + " : Running task set"
+            task = self.tasks.get()
+            time.sleep(1)
+        
         print "Exiting " + self.name
 
 
@@ -55,8 +63,11 @@
         self.logger = logger
         self.node = node
         self.tasks = tasks
+        self.thread = None
     def start (self):
         self.logger.log ("Starting execution for node " + self.node)
+        self.thread = NodeWorkerThread (1, self.node, self.tasks)
+        self.thread.start()
     
 class Worker:
     def __init__(self, logger, nodes, tasks):
@@ -69,5 +80,5 @@
     def start (self):
         self.logger.log ("Starting execution")
         for n in self.nodes.nodes:
-            nw = NodeWorker (self.logger, n, self.tasks)
+            nw = NodeWorker (self.logger, n, self.tasks.copy())
             nw.start()




reply via email to

[Prev in Thread] Current Thread [Next in Thread]