[issue5879] multiprocessing - example "pool of http servers " fails on windows "socket has no attribute fromfd"

Harald Armin Massa report at bugs.python.org
Wed Apr 29 17:38:02 CEST 2009


New submission from Harald Armin Massa <chef at ghum.de>:

the example from

http://docs.python.org/library/multiprocessing.html?highlight=multiprocessing#module-multiprocessing

named "
# Example where a pool of http servers share a single listening socket
#
" 
does not work on windows.

Reason: 

s = socket.fromfd(fd, family, type_, proto)

in line 156 of reduction.py

fails, because fromfd is not available on windows. Sad thing:
reduction.py was put into processing.py exactly to solve that problem
(i.e. reduction.py is provided as workaround for socket.fromfd not
available on windows, from the documentation: 
if sys.platform == 'win32':
    import multiprocessing.reduction
    # make sockets pickable/inheritable


the solution within processing was:

try:
    fromfd = socket.fromfd
except AttributeError:
    def fromfd(fd, family, type, proto=0):
        s = socket._socket.socket()
        _processing.changeFd(s, fd, family, type, proto)
        return s

but: _multiprocessing has no longer a method changeFd.

Harald

----------
components: Library (Lib)
messages: 86810
nosy: ghum
severity: normal
status: open
title: multiprocessing - example "pool of http servers " fails on windows "socket has no attribute fromfd"
versions: Python 2.6

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue5879>
_______________________________________


More information about the Python-bugs-list mailing list