- Backported bpo-21423: Add an initializer argument to {Process,Thread}PoolExecutor (only ThreadPoolExecutor for now; PR by Fahrzin Hemmati)
- Backported bpo-24882: Let ThreadPoolExecutor reuse idle threads before creating new thread
- The ThreadPoolExecutor class constructor now accepts an optional
thread_name_prefix
argument to make it possible to customize the names of the threads created by the pool. Upstream contribution by Gregory P. Smith in https://bugs.python.org/issue27664. - Backported fixes from upstream (thanks Lisandro Dalcin):
- Backported sanity checks for the
max_workers
constructor argument for ThreadPoolExecutor and ProcessPoolExecutor - Set the default value of
max_workers
in ThreadPoolExecutor toNone
, as in upstream code (computes the thread pool size based on the number of CPUs) - Added support for old-style exception objects
- Switched to the PSF license
- (Failed release)
- Fixed OverflowError with ProcessPoolExecutor on Windows (regression introduced in 3.0.4)
- Fixed inability to forcibly terminate the process if there are pending workers
- Fixed AttributeErrors on exit on Python 2.x
- Made multiprocessing optional again on implementations other than just Jython
- Made Executor.map() non-greedy
- Dropped Python 2.5 and 3.1 support
- Removed the deprecated "futures" top level package
- Applied patch for issue 11777 (Executor.map does not submit futures until iter.next() is called)
- Applied patch for issue 15015 (accessing a non-existing attribute)
- Applied patch for issue 16284 (memory leak)
- Applied patch for issue 20367 (behavior of concurrent.futures.as_completed() for duplicate arguments)
- Added the set_exception_info() and exception_info() methods to Future to enable extraction of tracebacks on Python 2.x
- Added support for Future.set_exception_info() to ThreadPoolExecutor
- Fixed a problem with files missing from the source distribution
- Fixed Jython compatibility
- Added metadata for wheel support
- Ported the library again from Python 3.2.5 to get the latest bug fixes
- Fixed race condition in wait(return_when=ALL_COMPLETED) (http://bugs.python.org/issue14406) -- thanks Ralf Schmitt
- Added missing setUp() methods to several test classes
- Fixed installation problem on Python 3.1
- Fixed missing 'concurrent' package declaration in setup.py
- Moved the code from the 'futures' package to 'concurrent.futures' to provide a drop in backport that matches the code in Python 3.2 standard library
- Deprecated the old 'futures' package
- Changed implementation to match PEP 3148
- Initial release