Hi Irmen,
Irmen de Jong wrote: > On 20-3-2010 14:38, News123 wrote: >> I'm having a small multiprocessing manager: >> >> # ########################## >> import socket,sys >> from multiprocessing.managers import BaseManager >> >> mngr = BaseManager(address=('127.0.0.1',8089),authkey='verysecret') >> try: >> srvr = mngr.get_server() >> except socket.error as e: >> print "probably address already in use" >> sys.exit() >> print "serving" >> srvr.serve_forever() >> >> Under Windows however the program can be started twice. >> and will print twice "serving". This surprises me > > > My guess is that somewhere in the multiprocessing package the > SO_REUSEADDR option is used on the socket. And that option has different > semantics on Windows than it has on other operating systems. At least > one of them being the possibility of multiple bindings on the same port > without getting an error. > See http://bugs.python.org/issue2550. > Also see the code comments to bind_port in Lib/test/test_support.py, > that suggests using SO_EXCLUSIVEADDRUSE instead under Windows, but that > is not much use to you unless you monkeypatch the multiprocessing > package code. > Yes this might be. Then I think, that I should report it either as bug / enhancement request. However I am not at all aware of the issue reporting process concerning python. (special site / module developer, PEP . . . ) For the short term: I wonder now how to solve my problem that only one manager is started and the second one should just aborts. Some days ago I started a discussion in the thread "how to start a python script only once". I hoped, that the listening socket of the manager would just take care of the issue. N -- http://mail.python.org/mailman/listinfo/python-list