Tim Alexander <dragonfyr...@gmail.com> 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 <rep...@bugs.python.org>
<http://bugs.python.org/issue4892>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to