Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Httpd Wiki" for change 
notification.

The following page has been changed by wrowe:
http://wiki.apache.org/httpd/ModuleLife

The comment on the change is:
just tidying up

------------------------------------------------------------------------------
   * The module is dynamically loaded in the single-process single-thread 
server, that is still running as root if it was started as root.
-  * The configuration is parsed, but just to check that it is valid.
+  * The configuration is parsed, but just to check that it is valid (sanity 
check).
-  * The module post_init hook is called for the 1st time.
+  * The module post_init hook is called for the 1st time in the sanity check.
-  * Depending on platform, the module is completely unloaded and reloaded. It 
means that global and static variables are reset.
+  * Depending on platform, the module is completely unloaded. It means that 
global and static variables are reset. This also means any cleanups left 
pointing into the module against the process pool will go boom on exit.
   * The configuration is parsed again, for real this time.
   * The module post_init hook is called for the 2nd time.
-  * Children processes are started, they may be forked, or not (Windows).
+  * Children processes are started, they may be forked (Unix) or spawned 
(Windows).
-   * If the children are not forked, they repeat the whole startup, and the 
post_config hook is called twice again in the children.
+  * The pre_init/post_init hooks are never called in the forked (Unix) child 
process, see the child_init hook instead.
-  * On restart and graceful restart, the module is unloaded and reloaded/init, 
and the post_config hook is called one time.
+  * On graceful restart, the module is unloaded and reloaded/init, and the 
post_config hook is called (still in the parent process) once again.
+  * If the children are spawned (as on Windows), they repeat the whole 
startup, and the post_config hook is called exactly twice again in the children 
(and never a third time on graceful restart).  A new spawned child process is 
created by the parent upon a graceful restart.
-  * On graceful restart, new children processes may be running on the new 
configuration while old children on the old configuration are still serving a 
request.
+  * During a graceful restart, new children processes may be running on the 
new configuration while old children on the old configuration are still serving 
out their requests.
  
  == 1st and next post_config hook calls ==
  If we want to create mutexes, shared memory... only once, we have to execute 
the post_config hook body only once, and we have to set a flag on 1st execution 
and read it on 2nd.

Reply via email to