[Twisted-Python] Re: reactor.stop stops entire twistd
Tsai Li Ming
mailinglist at ltsai.com
Wed Jul 28 05:29:24 EDT 2004
Christopher,
We have the following class that is instantiated within the sever code
that is using twistd to issue system calls.
class System:
result = None
status = None
cmd = ''
def __init__(self, cmd, args=[]):
self.cmd = cmd
self.args = args
def ok(self, result):
self.result = result
self.status = 0
reactor.stop()
def err(self, err):
self.result = err.getErrorMessage()
self.status = 1
reactor.stop()
def run(self):
d = utils.getProcessOutput(self.cmd, self.args, os.environ)
d.addCallback(self.ok)
d.addErrback(self.err)
reactor.run()
def getResult(self):
if self.status == None: self.status = 0
if self.result[-1:] == '\n': self.result = self.result[:-1]
return self.status, self.result
Since the reactor is already running, how do I actually use Deferred?
Many thanks,
Liming
Christopher Armstrong wrote:
> On Wed, 28 Jul 2004 17:07:36 +0800, Tsai Li Ming <mailinglist at ltsai.com> wrote:
>
>>Ok. then how do I aviod using reactor.start() and reactor.stop() for
>>getProcessOutut?
>
>
> Well, since you're using twistd, the reactor is already running, so
> you don't need to call reactor.run(). And you shouldn't be calling
> reactor.stop(), because you said you didn't want to stop the reactor.
>
> So, just don't call them. But the fact that I need to say something so
> obvious makes me think I'm not grasping the whole picture. If my
> explanation so far is insufficient, can you show more code?
>
More information about the Twisted-Python
mailing list