Issue 5177: multiprocessing: SocketListener should use SO_REUSEADDR (original) (raw)

Without this flag it is necessary to wait for e.g. 120s after closing down a 'BaseManager' server before restarting, due to the socket being in the TIME_WAIT state.

Example error, which occurs if a server is started, data transmitted down the socket, the server shut down, then restarted:

 File "/usr/local/lib/python2.6/multiprocessing/connection.py", line

220, in init self._socket.bind(address) File "", line 1, in bind error: [Errno 48] Address already in use

I added (locally): self._socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)

to SocketListener.init, and it resolves the issue.