> # I'm not sure about netiquette here: > # I decided to continue posting to the python-list without CCing to > everyone.
[I assume you mean python-dev] Discussing this issue on the list is fine. Posting code is on the borderline, and will have no effect, i.e. no action will come out of (at least *I* will ignore the code entirely, unless it is an actual patch, and submitted to the bug tracker). > So perhaps, for Python development, we just have to accept > that the problem persists and that at this time a 100% solution > just does not exist - and we should watch the discussion > on http://lwn.net/Articles/237722/ to see how they solve it for > Linux. Exactly. My proposal is still to provide an API to toggle the flag after the handle was created. > Martin, you mentioned that for sockets, inheritance is not a problem > unless accept(), recv() or select() is called in the child process > (as far as I understood it). I did not say "no problems". I said "there is no ambiguity whereto direct the data if the child processes don't perform accept/recv". > * http://mail.python.org/pipermail/python-list/2003-November/236043.html > "socket's strange behavior with subprocesses" > Funny: Even notepad.exe is used there as an example child process... Sure: the system will not shutdown the connection as long as the handle is still open in the subprocess (as the subprocess *might* send more data - which it won't). I think the problem could be avoided by the parent process explicitly performing shutdown(2), but I'm uncertain as I have never actively used shutdown(). > * http://mail.python.org/pipermail/python-bugs-list/2006-April/032974.html > python-Bugs-1469163 SimpleXMLRPCServer doesn't work anymore on Windows > (see also Bug 1222790). I don't understand how this is relevant. This is about CLO_EXEC not being available on Windows, and has nothing to do with socket inheritance. > * http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4202949 > Java has switched to non-inheritable sockets as well. Not surprisingly - they don't support fork(). If they would, they could not have made that change. The bug report is the same issue: clients will be able to connect as long as the listen backlog fills. Then they will be turned down, as notepad will never perform accept. [I'm getting bored trying to explain the other cases as well] > Any Windows Guru around who can explain what's going on with socket > handles and CreateProcess? I mean - is the explanation Martin gave for > accept(), recv(), select() correct for Windows, too? And if so - how can > the errors be explained that are mentioned in the URLs above? See my explanation above. Martin _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com