ts_free_id() would be a correct workaround if it came from
zend_shutdown().
How's it right to suddenly force EVERY extension author to add it to
their
code individually?

This was only reqiured in extensions registering custom dtor's like tidy
and printer.

Unfortunately that's not true. It's also required in the php-gtk module even though we don't declare a dtor - the DL_UNLOAD call is the first thing in the shutdown process, and if you _don't_ have free_ts_id() in MSHUTDOWN at present you'll be freeing the resource after the module's unloaded. DL_UNLOAD is called on anything loaded via dl() or the php.ini....

This isn't our only problem though - the GLOBAL_CLASS_TABLE is being destroyed during CG dtor because it doesn't match the current CG->global_class_table. Because the CG dtor is run after the PHP-GTK module is unloaded, destroying that class table crashes the shutdown process.

I've no idea why or how GTK classes end up in the CG global class table, but I guess that's what happening here. Any offers?

- Steph

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

Reply via email to