[PEAK] Process management and forking

Phillip J. Eby pje at telecommunity.com
Wed Nov 19 15:11:51 EST 2003

At 02:44 PM 11/19/03 -0500, Phillip J. Eby wrote:
>At this point, the prerequisites are largely met.  As it turned out, the 
>signal stack wasn't really the right idea, and I will probably end up 
>getting rid of it.  It'll be replaced by a global 'running.ISignalManager' 
>object.  It needs to be a global singleton, because signal handlers are 
>singletons, too.

This was an unclear phrasing.  What I mean is that Python can set only one 
signal handler for each signal.  So, it doesn't do any good to have more 
than one SignalManager, because each would still have to use Python's 
underlying singleton signal handling mechanism.

>To recap the planned changes:
>* Add 'runMain()' to peak.running.commands
>* Revise 'peak' script to use it
>* Add IBasicReactor.crash(), and fix UntwistedReactor.iterate() so it'll work
>* Add IMainLoop.childForked(), with appropriate doc change for IMainLoop.run()
>* Fixup ProcessManager to return a 'proxy,stub' pair to both parent and child
>* Make ProcessManager clear its process table and unregister its signal 
>handler in the child process
>* Begin work on IProcessFactory and on the prefork manager tool

I also forgot to include these:

* Deprecate and remove 'peak.util.signal_stack'

More information about the PEAK mailing list