Release history

trio-parallel 1.2.1 (2023-11-04)

Bugfixes

  • Resolved a deprecation warning on python 3.12. (#380)

Deprecations and Removals

  • Although python 3.7 has not been specifically broken, it is no longer tested in CI. (#389)

trio-parallel 1.2.0 (2022-10-29)

Features

Bugfixes

  • Use tblib lazily to pass tracebacks on user exceptions. Previously, tracebacks would only be passed on the built-in python exceptions. (#332)

trio-parallel 1.1.0 (2022-09-18)

Features

  • Add type hints for run_sync (#322)

  • Use tblib to enable pickling of tracebacks between processes. Mainly, this preserves context of exceptions including chained exceptions. (#323)

Bugfixes

  • Prevent Ctrl+C from inducing various leaks and inconsistent states. (#239)

  • Cleaned up names/qualnames of objects in the trio_parallel namespace. (#291)

Deprecations and Removals

  • Removed python 3.6 support (#236)

trio-parallel 1.0.0 (2021-12-04)

Bugfixes

  • Fixed a hang on failed worker subprocess spawns that mostly occurred upon accidental multiprocessing recursive spawn. (#167)

  • Fixed a hang on Windows when trying to use WorkerContext.run_sync() in sequential and concurrent Trio runs. (#171)

Improved Documentation

  • Revamped documentation with tested examples. (#168)

trio-parallel 1.0.0b0 (2021-11-12)

With this release I consider the project “feature complete”.

Features

  • Added an API to view statistics about a WorkerContext, specifically counting idle_workers and running_workers. (#155)

trio-parallel 1.0.0a2 (2021-10-08)

Features

trio-parallel 1.0.0a1 (2021-09-05)

Features

trio-parallel 1.0.0a0 (2021-07-22)

Features

  • The behavior and lifetime of worker processes can now be customized with the open_worker_context() context manager. (#19)

trio-parallel 0.5.1 (2021-05-05)

Bugfixes

  • Remove __version__ attribute to avoid crash on import when metadata is not available (#55)

trio-parallel 0.5.0 (2021-05-02)

Features

Bugfixes

  • Workers are now fully synchronized with only pipe/channel-like objects, making it impossible to leak semaphores. (#33)

  • Fix a regression of a rare race condition where idle workers shut down cleanly but appear broken. (#43)

  • Ensure a clean worker shutdown if IPC pipes are closed (#51)

Misc

trio-parallel 0.4.0 (2021-03-25)

Bugfixes

  • Correctly handle the case where os.cpu_count returns None. (#32)

  • Ignore keyboard interrupt (SIGINT) in workers to ensure correct cancellation semantics and clean shutdown on CTRL+C. (#35)

Misc

trio-parallel 0.3.0 (2021-02-21)

Bugfixes

  • Fixed an underlying race condition in IPC. Not a critical bugfix, as it should not be triggered in practice. (#15)

  • Reduce the production of zombie children on Unix systems (#20)

  • Close internal race condition when waiting for subprocess exit codes on macOS. (#23)

  • Avoid a race condition leading to deadlocks when a worker process is killed right after receiving work. (#25)

Improved Documentation

  • Reorganized documentation for less redundancy and more clarity (#16)

trio-parallel 0.2.0 (2021-02-02)

Bugfixes

  • Changed subprocess context to explicitly always spawn new processes (#5)

  • Changed synchronization scheme to achieve full passing tests on

    • Windows, Linux, MacOS

    • CPython 3.6, 3.7, 3.8, 3.9

    • Pypy 3.6, 3.7, 3.7-nightly

    Note Pypy on Windows is not supported here or by Trio (#10)