[Twisted-Python] Freezing Ampoule or the Invasion of Infinite Zombie Processes

exarkun at twistedmatrix.com exarkun at twistedmatrix.com
Mon Mar 3 05:19:26 MST 2014


On 06:34 am, burak at nehbit.net wrote:
>Hi everyone,
>
>It seems that I ran into a rather inextricable problem, would love to 
>see what you think.
>
>As you might remember, I have been working on a distributed, anonymous 
>community platform(s) called Aether ( www.getaether.net ) which is 
>largely a Twisted codebase in its networking system. After releasing 
>the app, I ended up with performance problems, in some part due to my 
>programming incompetence, and some part because I was also using it to 
>drive a GUI with qtreactor, which ran its own Javascript interpreter.
>
>The codebase is largely cleaned up now and the current architecture of 
>the program involves two processes that talk to each other via Ampoule: 
>a default reactor core, which handles network events, and a qtreactor 
>which is solely concerned with the user interface. It works very well. 
>Stress induced by networking does not slow down the UI and vice versa.

I wonder why you decided to use Ampoule to manage a single child process 
(that apparently shouldn't be restarted when it exits)?

I think Ampoule's purpose is to make it easy to run many processes and 
automatically restart them from time to time.

It sounds like the basic process support included in Twisted, 
reactor.spawnProcess, could address your requirements.

Jean-Paul



More information about the Twisted-Python mailing list