James Hutchison <jamesghutchi...@gmail.com> added the comment: Shouldn't reduce_pipe_connection just be an alias for reduce_connection in unix so that using reduce_pipe_connection would work for both win and unix? My understanding after looking at the code is that reduce_pipe_connection isn't defined for non-win32, although I haven't tested it to see if that's true.
Of course, ideally a pipe connection would just pickle and unpickle properly out-of-the-box, which I think was the original intent. Here's a complete, working example with Python 3.2 tested on Win 7 64-bit: import sys from multiprocessing import Process,Pipe, reduction def main(): print("starting"); i, o = Pipe(False) parent, child = Pipe(); reducedchild = reduce_pipe(child); p = Process(target=helper, args=(i,)); p.start(); parent.send("hi"); o.send(reducedchild); print(parent.recv()); print("finishing"); p.join(); print("done"); def helper(inPipe): childPipe = expand_reduced_pipe(inPipe.recv()); childPipe.send("child got: " + childPipe.recv()); return; def reduce_pipe(pipe): if sys.platform == "win32": return reduction.reduce_pipe_connection(pipe); else: return reduction.reduce_connection(pipe); def expand_reduced_pipe(reduced_pipe): return reduced_pipe[0](*reduced_pipe[1]); if __name__ == "__main__": main(); ---------- _______________________________________ 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