I don't think I made myself clear on the globals. The only situation there would be a problem is if PHP were built threaded and libxml2 were not (which as of 2.5.8 it is built threaded by default).

When running threaded, each thread has its own global state, so when modified at request startup/shutdown the global is only changed for that thread, rather than being set at the module startup/shutdown which would set the default values used to initialize the global states of the threads.

Rob

Wez Furlong wrote:
Sounds like a nasty situation.
I don't think it's possible to sanely restore the handlers at
rshutdown in a threaded build without screwing up the other threads
that are currently executing.

My suggestion is to not restore the handlers for threaded builds, and
if there is a library sharing/abuse issue, then treat it as an
installation/configuration problem for the person deploying it (eg:
don't do that!).  There's not much you can do about that without
rewriting libxml2 to not use globals for the callbacks.  :-/


--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to