The old multiprocessing implementation used OS pipes directly. This worked okay on Linux but was extremely problematic on Windows, leading to deadlocks. There were also problems with clean-up at exit.
Zeromq uses TCP sockets instead. It is a bit slower due to increased overhead, but is much more portable and does not seem to deadlock.
This adds a new dependency on zeromq, but that is easily installed with pip. No external native libraries are required as far as I know.
The old multiprocessing implementation used OS pipes directly. This worked okay on Linux but was extremely problematic on Windows, leading to deadlocks. There were also problems with clean-up at exit.
Zeromq uses TCP sockets instead. It is a bit slower due to increased overhead, but is much more portable and does not seem to deadlock.
This adds a new dependency on zeromq, but that is easily installed with pip. No external native libraries are required as far as I know.