We have a system which uses Python multiprocessing to run multiple simulations concurrently in child processes, with main server <-> child process communication using multiprocessing. This works fine standalone.
For a GUI, we use zeromq and tornado for communications between the main server and the browser. This also works fine as long as the main server never starts a child process using multiprocessing. If we do start a child process, we get an assertion failure: Assertion failed: ok (bundled/zeromq/src/mailbox.cpp:79) and the main server aborts (this is on Linux, Windows seems OK, probably because multiprocessing doesn't fork on Windows) This is using Python 2.7 and pyzmq 13.1.0. Is there some way to run a server that uses zmq and also forks child processes using multiprocessing? I've seen some posts about forked child processes needing to context.term() and then creating a new context. I tried context.term() in the target of the multiprocess.Process, but that hasn't fixed the problem. Note that the child processes do not need zmq, so I don't create a new context.
_______________________________________________ zeromq-dev mailing list zeromq-dev@lists.zeromq.org http://lists.zeromq.org/mailman/listinfo/zeromq-dev