Pravin wrote:
> 
> If this is the way Apache implements its plug-in architecture then
> why do we need to restart Apache when we add new module
> or update existing module ?

Three reasons;

  * fork() lets us create, say, 25 or 500 children, each identical, each
    with a copy-on-write pointer to the very same configuration and binary
    code pages.  Touch the third rail (modify that config in each child)
    and the memory consumed 1x now balloons to 25x, or 500x.

  * it's not terribly safe to modify the configuration structures created
    by httpd, they really are applied in a serial manner, not as some state
    machine the config state.  Most platforms couldn't unlink a module and
    replace it with the same (new build) of a module even if you tried in
    a running process (why do you suppose you have to reboot after a kernel
    patch anyways?)

  * Adding the sorts of features you suggest would substantially bloat
    httpd; there's a reason why you must have a GB to run a windows box
    anymore as a workstation :)  httpd's optimization is one core mission,
    the fastest possible service of individual requests.  Not startup,
    not teardown and not reconfiguration.

> Can I get pointers to some documentation or code which deals with how
> exactly these new DSO's are loaded and how these newly added
> modules come to life ? and why there is need for restarting Apache
> when we add or modify any module ?

Use the Source, Luke.  server/*.c and modules/mappers/mod_so.c should
be interesting to you.

---------------------------------------------------------------------
The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:http://httpd.apache.org/userslist.html> for more info.
To unsubscribe, e-mail: [EMAIL PROTECTED]
   "   from the digest: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to