On Tue, 26 Oct 2004, Wez Furlong wrote: > On Tue, 26 Oct 2004 15:23:45 -0700 (PDT), Rasmus Lerdorf <[EMAIL PROTECTED]> wrote: > > On Tue, 26 Oct 2004, Wez Furlong wrote: > > > It should be safe to never ever dlclose() a module. > > > > Do you mean never to dlclose() a module loaded via dl() at request time or > > do you mean that in general it should be safe to never dlclose() a module > > even if it came in via an extension line in the php.ini file? The former > > is likely a true statement, but the latter is definitely not. > > I did mean the latter. What's the issue there?
It's a bit tricky. When Apache starts up it does a double-pass of the conf files in order to do a syntax check. It needs to load all its modules in order to do this so our libphp4.so gets loaded which in turn causes us to load all our extensions. Then Apache unloads libphp4.so and starts over and reloads libphp4.so. Now, in between these two dlopens of libphp4.so memory usage can change dramatically. For example, if you have a bunch of mod_rewrite rules in your Apache conf the second time libphp4.so is loaded it can easily be a page higher in memory. If the extensions that PHP loaded on the first pass were not unloaded then any callback addresses in the extensions are going to be off by a page and you will get some very nasty crashes. -Rasmus -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php