From b8f62c1749bed87d6dc02f1b323706a5b40aa7a3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Radek=20Hu=C5=A1ek?= <PitelVonSacek@gmail.com>
Date: Fri, 11 Dec 2015 17:45:13 +0100
Subject: [PATCH] parmap: Add option to not preserve order of items

---
 parmap.py | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/parmap.py b/parmap.py
index f3b36de..a19c36d 100644
--- a/parmap.py
+++ b/parmap.py
@@ -33,7 +33,8 @@ def worker_fun(f, q_in, q_out):
             break
         q_out.put((i, [ f(x) for x in chunk ]))
 
-def parmap(f, X, nprocs = None, chunksize = 1, chunks_in_flight = None):
+def parmap(f, X, nprocs = None, chunksize = 1, chunks_in_flight = None,
+           inOrder = True):
     if nprocs is None:
       nprocs = multiprocessing.cpu_count()
 
@@ -70,6 +71,12 @@ def parmap(f, X, nprocs = None, chunksize = 1, chunks_in_flight = None):
           jobs = val
           continue
 
+        if not inOrder:
+          chunk_index += 1
+          cont.release()
+          yield val
+          continue
+
         ret[i] = val
         while chunk_index in ret:
           val = ret[chunk_index]
-- 
GitLab