James Hutchison <jamesghutchi...@gmail.com> added the comment: This is an issue for me (Python 3.2). I have a custom pool that sends arguments for a function call over a pipe. I cannot send another pipe as an argument.
Tim's workaround also does not work for me (win xp 32bit and 64bit) >From what I can tell, you can only send a connection as a direct argument to a >function call. This limits what I can do because I cannot introduce new pipes >to a worker process after it is instantiated. Using this code: def main(): from multiprocessing import Pipe, reduction i, o = Pipe() print(i); reduced = reduction.reduce_connection(i) print(reduced); newi = reduced[0](*reduced[1]) print(newi); newi.send("hi") o.recv() if __name__ == "__main__": main(); This is my output: <read-write PipeConnection, handle 1760> (<function rebuild_connection at 0x00FD4C00>, (('\\\\.\\pipe\\pyc-3156-1-q5wwnr', 1756, False), True, True)) <read-write Connection, handle 1720> Traceback (most recent call last): File "H:\mti\secure\Flash\Reliability\Perl_Rel\Ambyx\James\bugs\test.py", line 47, in <module> main(); File "H:\mti\secure\Flash\Reliability\Perl_Rel\Ambyx\James\bugs\test.py", line 43, in main newi.send("hi") IOError: [Errno 10038] An operation was attempted on something that is not a socket As you can see, the handle changes ---------- nosy: +Jimbofbx _______________________________________ 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