On Jun 13, 1:11 pm, Mike Kazantsev <mk.frag...@gmail.com> wrote: > On Sat, 13 Jun 2009 02:23:37 -0500 > > > > > > Randall Smith <rand...@tnr.cc> wrote: > > I've got a situation in which I'd like to hand one end of a pipe to > > another process. First, in case you ask why, a spawner process is > > created early before many modules are imported. That spawner process is > > responsible for creating new processes and giving a proxy to the parent > > process. > > ... > > > Looking at the pickle docs, I wonder if this could be resolved by adding > > a __getnewargs__ method to _multiprocessing.Connection. But even if > > that would work I couldn't do it now since it's an extension module. > > I've thought about trying to recreate the Connection. Looks like it > > should be possible with Connection.fileno(). The Unix portion looks > > easy, but the win32 portion does not. > > > So if it's possible, what's the best way to pass a Connection to another > > process? > > Pickle has nothing to do with the problem since it lay much deeper: in > the OS. > > From kernel point of view, every process has it's own "descriptor > table" and the integer id of the descriptor is all the process gets, so > when you say "os.pipe()" kernel actually gives you a number which is > completely meaningless for any other process - it either doesn't exists > in it's descriptor table or points to something else. > > So, what you actually need is to tell the kernel to duplicate > underlying object in another process' table (with it's own numbering), > which is usually done via special flag for sendmsg(2) in C, so you > should probably look out for py implementation of this call, which I > haven't stumbled upon, but, admittely, never looked for. > > -- > Mike Kazantsev // fraggod.net > > signature.asc > < 1KViewDownload
Check http://www.voipsipsdk.com its a good one. -- http://mail.python.org/mailman/listinfo/python-list