diff options
author | Sybren A. Stüvel <sybren@stuvel.eu> | 2016-01-22 11:01:39 +0100 |
---|---|---|
committer | Sybren A. Stüvel <sybren@stuvel.eu> | 2016-01-22 11:01:39 +0100 |
commit | a26f518df5eb42d004c0fc19dfdb630aecb182f7 (patch) | |
tree | c3891b22cccfab224fa989f1a66656c04126318e /rsa | |
parent | 2e900cae53f69c660b782b6d49234b6ca7b2379e (diff) | |
download | rsa-git-a26f518df5eb42d004c0fc19dfdb630aecb182f7.tar.gz |
Fix #27: Close Pipes at parallel version of genprime.
Now closing pipes after reading result, and added a unittest.
Diffstat (limited to 'rsa')
-rw-r--r-- | rsa/parallel.py | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/rsa/parallel.py b/rsa/parallel.py index e5034ac..17a10ed 100644 --- a/rsa/parallel.py +++ b/rsa/parallel.py @@ -65,11 +65,15 @@ def getprime(nbits, poolsize): (pipe_recv, pipe_send) = mp.Pipe(duplex=False) # Create processes - procs = [mp.Process(target=_find_prime, args=(nbits, pipe_send)) - for _ in range(poolsize)] - [p.start() for p in procs] - - result = pipe_recv.recv() + try: + procs = [mp.Process(target=_find_prime, args=(nbits, pipe_send)) + for _ in range(poolsize)] + [p.start() for p in procs] + + result = pipe_recv.recv() + finally: + pipe_recv.close() + pipe_send.close() [p.terminate() for p in procs] |