Tim Alexander <[email protected]> added the comment:
Wanted to quickly comment here, as I'm dealing with this issue as well, that I
did find a workaround for avoiding it as far back as 2.6 (and it's not "don't
pass a Pipe through a Pipe")
multiprocessing.reduction can already do this, though I don't entirely know why
this isn't automatically done if it's a connection object.
>>> from multiprocessing import Pipe, reduction
>>> i, o = Pipe()
>>> reduced = reduction.reduce_connection(i)
>>> newi = reduced[0](*reduced[1])
>>> newi.send("hi")
>>> o.recv()
'hi'
>>>
The reduced[0](*reduced[1]) line is actually calling
reduction.rebuild_connection, as that function is the first element in the
tuple, and the second element is the arguments to be passed to it. I can't seem
to find any info on reduction.reduce_connection, so I don't know if this is how
this was intended to be handled or not.
P.S. Tested on Win (XP) and Linux (Ubuntu 10.10), so there's no weird windows
socket stuff that should go wrong with this.
----------
nosy: +dragonfyre13
_______________________________________
Python tracker <[email protected]>
<http://bugs.python.org/issue4892>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com