Regarding
The process ''starting'' is different from `ProcessProtocol` methods being called. `ProcessProtocol.processEnded` is ''not'' called until the reactor is running.
On my own VMs, the processEnded gets called
[root@master1 play]# cat fun.py
from twisted.internet import reactor
from twisted.internet import reactor, protocol
class OneRun(protocol.ProcessProtocol):
def processEnded(self, reason):
print "Process ended\n"
reactor.spawnProcess(OneRun(), executable="echo", args=["echo",
"hello"], childFDs={0:0, 1:1, 2:2})
[root@master1 play]# python fun.py
hello
Process ended
[root@master1 play]#
But once again, on a different VM, I only see "hello" and processEnded
isn't called.
Both VMs run Python 2.7.1 and Twisted 11.0.0
What is going on?
David Kao
On Mon, Sep 26, 2011 at 8:03 PM, Twisted
#5272: In the core doc, do not call reactor.stop directly in processEnded ------------------------+--------------------------------------------------- Reporter: dkdog | Owner: Type: defect | Status: closed Priority: normal | Milestone: Component: core | Resolution: worksforme Keywords: | Branch: Branch_author: | Launchpad_bug: ------------------------+--------------------------------------------------- Changes (by exarkun):
* status: reopened => closed * resolution: => worksforme
Comment:
> I just found out that reactor.spawnProcess could spawn the subprocess right away **before** reactor.run is executed.
This doesn't seem related to this ticket.
> I get the impression that most stuff don't get run until the reactor event loop is up and running with reactor.run()
That's true. Most stuff.
> In this case, who's answering all the ProcessProtocol's methods like processEnded then, without an event loop?
The process ''starting'' is different from `ProcessProtocol` methods being called. `ProcessProtocol.processEnded` is ''not'' called until the reactor is running.
Further discussion should be moved to the mailing list. Thanks.
-- Ticket URL: http://twistedmatrix.com/trac/ticket/5272#comment:8 Twisted http://twistedmatrix.com/trac/ Engine of your Internet