[Top][All Lists]
[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()
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r22719 - gnunet-planetlab/gplmt,
gnunet <=