diff tools/protein_analysis/seq_analysis_utils.py @ 3:f3b373a41f81

Migrated tool version 0.0.6 from old tool shed archive to new tool shed repository
author peterjc
date Tue, 07 Jun 2011 18:05:13 -0400
parents bca9bc7fdaef
children a290c6d4e658
line wrap: on
line diff
--- a/tools/protein_analysis/seq_analysis_utils.py	Tue Jun 07 18:04:39 2011 -0400
+++ b/tools/protein_analysis/seq_analysis_utils.py	Tue Jun 07 18:05:13 2011 -0400
@@ -102,28 +102,32 @@
         raise err
     return files
 
-def run_jobs(jobs, threads):
+def run_jobs(jobs, threads, verbose=False):
     """Takes list of cmd strings, returns dict with error levels."""
     pending = jobs[:]
     running = []
     results = {}
     while pending or running:
-        #print "%i jobs pending, %i running, %i completed" \
-        #      % (len(jobs), len(running), len(results))
         #See if any have finished
         for (cmd, process) in running:
-            return_code = process.wait()
+            return_code = process.poll() #non-blocking
             if return_code is not None:
                 results[cmd] = return_code
         running = [(cmd, process) for (cmd, process) in running \
                    if cmd not in results]
+        if verbose:
+            print "%i jobs pending, %i running, %i completed" \
+                  % (len(pending), len(running), len(results))
         #See if we can start any new threads
         while pending and len(running) < threads:
             cmd = pending.pop(0)
+            if verbose:
+                print cmd
             process = subprocess.Popen(cmd, shell=True)
             running.append((cmd, process))
         #Loop...
-        sleep(1)
-    #print "%i jobs completed" % len(results)
+        sleep(10)
+    if verbose:
+        print "%i jobs completed" % len(results)
     assert set(jobs) == set(results)
     return results