As of r758185: Design issues 1. MPM arg rewriting, signal server support see old main.c, look for AP_MPM_WANT_SIGNAL_SERVER and AP_MPM_WANT_SET_GRACEFUL_SHUTDOWN also, see struct module_struct { ... /** Function to allow MPMs to re-write command line arguments. This * hook is only available to MPMs. * @param The process that the server is running in. */ void (*rewrite_args) (process_rec *process); ... }; and its use in many MPMs Proposal: Confirm common rewrite args use in loadable MPMs, and provide a module for static linking which specifies the arg rewriting hook in mpm_common.c 2. retain data SOLVED with ap_set_retained_data()/ap_get_retained_data() 3. core.c generation of PidFile, ScoreBoardFile, LockFile, MaxRequestsPerChild, CoreDumpDirectory, AcceptMutex, MaxMemFree, ThreadStackSize directives Proposal: punt for the moment 4. don't allow multiple MPMs to be loaded Current feedback: open-logs is run-all, so you get EADDRINUSE errors when the second MPM tries to open sockets Proposal: punt for the moment Bugs 1. Windows still installs mpm's *.h 2. Check setting of return codes from new MPM hooks; appropriate for the hook defs? 3. main.c needs a command-line option to call show_mpm_settings(); like -M, this needs to load the modules first Proposal 1: Move show_mpm_settings() to mpm_common.c and convert to a test-config hook that checks for a command-line define. MPMs use that for a test-config hook. user does ./httpd -t -D SHOW_MPM (or some synonym) Proposal 2: leave show_mpm_settings() as-is; proceed through loading modules and then call show_mpm_settings() and exit, when some new command-line switch is enabled 4. ap_show_mpm() returns hard-coded string; make it call a hook implemented by the MPMs 5. CHANGES and ap_mmn.h not updated for MPM churn 6. need to hide ap_pglobal Stuff to test (other than "everything") 1. make sure arg rewriting and signalling still work for built-in MPMs 2. test the module which uses register-timed-callback 3. test idle process termination Other issues 1. a shared MPM must be built with apxs or similar instead of like other shared modules (punt until there are fewer problems with them ;) ) 2. MPMs not updated (unclear which of these were previously working) beos mpmt_os2 netware leader perchild threadpool