billiard 3.3.0.8

`billiard` is a fork of the Python 2.7 `multiprocessing <http: docs.python.org="" library="" multiprocessing.html="">`_package. The multiprocessing package itself is a renamed and updated version ofR Oudkerk's `pyprocessing <http: pypi.python.org="" pypi="" processing=""/>`_ package.This standalone variant is intended to be compatible with Python 2.4 and 2.5,and will draw it's fixes/improvements from python-trunk.

- This package would not be possible if not for the contributions of not only the current maintainers but all of the contributors to the original pyprocessing package listed `here <http: pyprocessing.berlios.de="" doc="" thanks.html="">`_

- Also it is a fork of the multiprocessin backport package by Christian Heims.

- Pool: New callback `on_process_exit` is called when a pool process exits, with signature ``(pid, exitcode)``.

Contributed by Daniel M. Taub.

- Pool: Improved the too many restarts detection.

3.3.0.0 - 2013-10-14--------------------

- Dual code base now runs on Python 2.6+ and Python 3.

- No longer compatible with Python 2.5

- Includes many changes from multiprocessing in 3.4.

- Now uses ``time.monotonic`` when available, also including fallback implementations for Linux and OS X.

- No longer cleans up after receiving SIGILL, SIGSEGV or SIGFPE

Contributed by Kevin Blackham

- ``Finalize`` and ``register_after_fork`` is now aliases to multiprocessing.

It's better to import these from multiprocessing directly now so that there aren't multiple registries.

- New `billiard.queues._SimpleQueue` that does not use semaphores.

- Pool: Can now be extended to support using multiple IPC queues.

- Pool: Can now use async I/O to write to pool IPC queues.

- Pool: New ``Worker.on_loop_stop`` handler can be used to add actions at pool worker process shutdown.

Note that, like all finalization handlers, there is no guarantee that this will be executed.

Contributed by dmtaub.

2.7.3.30 - 2013-06-28---------------------

- Fixed ImportError in billiard._ext

2.7.3.29 - 2013-06-28---------------------

- Compilation: Fixed improper handling of HAVE_SEM_OPEN (Issue #55)

Fix contributed by Krzysztof Jagiello.

- Process now releases logging locks after fork.

This previously happened in Pool, but it was done too late as processes logs when they bootstrap.

- Pool.terminate_job now ignores `No such process` errors.

- billiard.Pool entrypoint did not support new arguments to billiard.pool.Pool

- Connection inbound buffer size increased from 1kb to 128kb.

- C extension cleaned up by properly adding a namespace to symbols.

- _exit_function now works even if thread wakes up after gc collect.

2.7.3.28 - 2013-04-16---------------------

- Pool: Fixed regression that disabled the deadlock fix in 2.7.3.24

- Pool: RestartFreqExceeded could be raised prematurely.

- Process: Include pid in startup and process INFO logs.

2.7.3.27 - 2013-04-12---------------------

- Manager now works again.

- Python 3 fixes for billiard.connection.

- Fixed invalid argument bug when running on Python 3.3

Fix contributed by Nathan Wan.

- Ignore OSError when setting up signal handlers.

2.7.3.26 - 2013-04-09---------------------

- Pool: Child processes must ignore SIGINT.

2.7.3.25 - 2013-04-09---------------------

- Pool: 2.7.3.24 broke support for subprocesses (Issue #48).

Signals that should be ignored were instead handled by terminating.

2.7.3.24 - 2013-04-08---------------------

- Pool: Make sure finally blocks are called when process exits due to a signal.

This fixes a deadlock problem when the process is killed while having acquired the shared semaphore. However, this solution does not protect against the processes being killed, a more elaborate solution is required for that. Hopefully this will be fixed soon in a later version.

- Pool: Can now use GDB to debug pool child processes.

- Fixes Python 3 compatibility problems.

Contributed by Albertas Agejevas.

2.7.3.23 - 2013-03-22---------------------

- Windows: Now catches SystemExit from setuptools while trying to build the C extension (Issue #41).

2.7.3.22 - 2013-03-08---------------------

- Pool: apply_async now supports a ``callbacks_propagate`` keyword argument that can be a tuple of exceptions to propagate in callbacks. (callback, errback, accept_callback, timeout_callback).

- Errors are no longer logged for OK and recycle exit codes.

This would cause normal maxtasksperchild recycled process to log an error.

- Fixed Python 2.5 compatibility problem (Issue #33).

- FreeBSD: Compilation now disables semaphores if Python was built without it (Issue #40).