On Dec 16, 2:34 pm, [EMAIL PROTECTED] wrote: > > If it is a one-shot (spawn sub, wait, retrieve results) you could > > generate a temporary file name in the parent, pass that name to the sub > > when invoking it, wait for the sub to complete (giving you a status > > code) and then read the result the sub has written to the file. > > Yes, it's once shot. But how do I pass "that name"? > From all the arguments of class Popen (http://docs.python.org/lib/ > node529.html) perhaps I could use "env" only. Or am I wrong?
Yes. Consider this: If you were to run your calculation script from the shell prompt [strongly recommended during testing], how would you tell it the name of the file? Now look at the docs again. > > PS: both with mmpam and temp file you probably meant that I should > hard code some as-weirdest-filename-as-possible two both programs but > what if I run the computation several times? That's mmap, not mmpam. No, Dennis didn't mean that you should hard code a filename. Have a look at the tempfile module. > > And thanks for reply! > > > > > Or, you could have parent and sub both mmap the same "file", > > essentially passing data in memory unless it becomes too large and pages > > out to swap disk. You might even be able to do bidirectional and dynamic > > updates (rather than waiting for the sub to exit)... Define, say, an > > epoch count for each process -- these would be the first two words of > > the mmap file > > > |p-epoch|s-epoch|n-words of p-data (fixed constant known to both)|n-words > > of s-data| > > > periodically the parent would examine the value of s-epoch, and if it > > has changed, read the s-data.. (both sides write the data first, then > > update the epoch count). When the epoch stays the same and two > > consecutive reads of the data match, you have stable data (so the reads > > should occur more often than updates) and can process the data > > transferred. > > > OR, you could have the parent open a TCP/IP socket as a server, and > > pass the socket port number to the sub. The sub would then connect to > > that port and write the data. For bidirectional you could pass the > > parent port, and the sub's first action is to connect and pass a port > > that it will be monitoring. > > > On a VMS system, the processes would connect to named "mailboxes" > > and use QIO operations to pass data between them. > > > On an Amiga you'd use "message ports" (which operated somewhat > > similar to VMS mailboxes except that mailboxes had an independent > > existence, multiple processes can read or write to them -- message ports > > were readable by the creating process, but could have messages sent from > > anywhere; typically passing the message port [address of a linked list > > of messages] for replies). Or a higher level message port: an ARexx > > port. > > > On a Windows NT class system, the win32 extensions allow access to > > Windows Named Pipes... Or maybe the Windows clipboard could be used... > > -- > > Wulfraed Dennis Lee Bieber KD6MOG > > [EMAIL PROTECTED] [EMAIL PROTECTED] > > HTTP://wlfraed.home.netcom.com/ > > (Bestiaria Support Staff: [EMAIL PROTECTED]) > > HTTP://www.bestiaria.com/ -- http://mail.python.org/mailman/listinfo/python-list