[Twisted-Python] Re: twisted application server
p.mayers at imperial.ac.uk
Fri Mar 7 13:35:06 EST 2008
Phil Mayers wrote:
> Mike Pelletier wrote:
>> On Fri, Mar 7, 2008 at 8:36 AM, Phil Mayers <p.mayers at imperial.ac.uk>
>>> If you fork a python interpreter, you should very quickly replace the
>>> process with exec.
>> Does fork+exec have any advantages over spawn?
> If you mean "os.spawnXX" I think that, under Unix, those *are* fork &
> exec, so no - they're identical.
Sorry - to reply to myself and try to be more clear:
In almost all circumstances, regardless of whether you're using Twisted
or not, fork'ing a python interpreter and leaving both parent and child
running off the same memory image for any length of time is unwise.
In that respect, os.spawnXX == fork/exec and is thus fine. However...
> I don't think there's a native unix syscall "spawn".
> Seems I recall there is something in the MS VC runtime named similar.
> Anyway - if we're talking about Twisted, you want to use the Twisted
> support - reactor.spawnProcess and a subclass of t.i.p.ProcessProtocol
> to talk to the child worker.
> reactor.spawnProcess does the right thing(tm)
In almost all circumstances when using Twisted, you should use
reactor.spawnProcess or one of the util functions t.i.utils.getProcess*
More information about the Twisted-Python