a first very rough step towards python3
[nepi.git] / src / nepi / util / parallel.py
index 3b6e281..b106fa2 100644 (file)
@@ -19,7 +19,7 @@
 #
 
 import threading
-import Queue
+import queue
 import traceback
 import sys
 import os
@@ -64,12 +64,12 @@ class ParallelRun(object):
         self.maxqueue = maxqueue
         self.maxthreads = maxthreads
         
-        self.queue = Queue.Queue(self.maxqueue or 0)
+        self.queue = queue.Queue(self.maxqueue or 0)
         
         self.delayed_exceptions = []
         
         if results:
-            self.rvqueue = Queue.Queue()
+            self.rvqueue = queue.Queue()
         else:
             self.rvqueue = None
     
@@ -99,7 +99,7 @@ class ParallelRun(object):
         self.workers = []
 
         # initialize workers
-        for x in xrange(maxthreads):
+        for x in range(maxthreads):
             worker = WorkerThread()
             worker.attach(self.queue, self.rvqueue, self.delayed_exceptions)
             worker.setDaemon(True)
@@ -114,7 +114,7 @@ class ParallelRun(object):
             try:
                 self.queue.get(block = False)
                 self.queue.task_done()
-            except Queue.Empty:
+            except queue.Empty:
                 break
   
     def destroy(self):
@@ -147,17 +147,17 @@ class ParallelRun(object):
         if self.delayed_exceptions:
             typ,val,loc = self.delayed_exceptions[0]
             del self.delayed_exceptions[:]
-            raise typ,val,loc
+            raise typ(val).with_traceback(loc)
         
     def __iter__(self):
         if self.rvqueue is not None:
             while True:
                 try:
                     yield self.rvqueue.get_nowait()
-                except Queue.Empty:
+                except queue.Empty:
                     self.queue.join()
                     try:
                         yield self.rvqueue.get_nowait()
-                    except Queue.Empty:
+                    except queue.Empty:
                         raise StopIteration