New submission from Theodore Randolph: ProcessPoolExecutor doesn't work in an interactive shell in Windows, such as IDLE or the command prompt. It does work in Unix, and it works if I use the ThreadPoolExecutor instead.
For example, let's use the tutorial at http://eli.thegreenplace.net/2013/01/16/python-paralellizing-cpu-bound-tasks-with-concurrent-futures/ I get: >>> pool_factorizer_chunked([1,2,3,456,7,8],8) Exception in thread Thread-1: Traceback (most recent call last): File "C:\Python33\lib\threading.py", line 639, in _bootstrap_inner self.run() File "C:\Python33\lib\threading.py", line 596, in run self._target(*self._args, **self._kwargs) File "C:\Python33\lib\concurrent\futures\process.py", line 248, in _queue_management_worker shutdown_worker() File "C:\Python33\lib\concurrent\futures\process.py", line 208, in shutdown_worker call_queue.put_nowait(None) File "C:\Python33\lib\multiprocessing\queues.py", line 132, in put_nowait return self.put(obj, False) File "C:\Python33\lib\multiprocessing\queues.py", line 79, in put raise Full queue.Full Traceback (most recent call last): File "<pyshell#10>", line 1, in <module> pool_factorizer_chunked([1,2,3,456,7,8],8) File "<pyshell#5>", line 14, in pool_factorizer_chunked resultdict.update(f.result()) File "C:\Python33\lib\concurrent\futures\_base.py", line 392, in result return self.__get_result() File "C:\Python33\lib\concurrent\futures\_base.py", line 351, in __get_result raise self._exception concurrent.futures.process.BrokenProcessPool: A process in the process pool was terminated abruptly while the future was running or pending. >>> pool_factorizer_map([1,2,3,456,7,8],8) Exception in thread Thread-2: Traceback (most recent call last): File "C:\Python33\lib\threading.py", line 639, in _bootstrap_inner self.run() File "C:\Python33\lib\threading.py", line 596, in run self._target(*self._args, **self._kwargs) File "C:\Python33\lib\concurrent\futures\process.py", line 248, in _queue_management_worker shutdown_worker() File "C:\Python33\lib\concurrent\futures\process.py", line 208, in shutdown_worker call_queue.put_nowait(None) File "C:\Python33\lib\multiprocessing\queues.py", line 132, in put_nowait return self.put(obj, False) File "C:\Python33\lib\multiprocessing\queues.py", line 79, in put raise Full queue.Full Traceback (most recent call last): File "<pyshell#13>", line 1, in <module> pool_factorizer_map([1,2,3,456,7,8],8) File "<pyshell#12>", line 6, in pool_factorizer_map executor.map(factorize_naive, nums))} File "<pyshell#12>", line 4, in <dictcomp> return {num:factors for num, factors in File "C:\Python33\lib\concurrent\futures\_base.py", line 546, in result_iterator yield future.result() File "C:\Python33\lib\concurrent\futures\_base.py", line 399, in result return self.__get_result() File "C:\Python33\lib\concurrent\futures\_base.py", line 351, in __get_result raise self._exception concurrent.futures.process.BrokenProcessPool: A process in the process pool was terminated abruptly while the future was running or pending. >>> ---------- components: Windows messages: 188122 nosy: Decade priority: normal severity: normal status: open title: ProcessPoolExecutor in interactive shell doesn't work in Windows type: crash versions: Python 3.3 _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue17874> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com