im creating an extension which exposes classes which may act as containers to other classes. These contained classes also get exposed via the extension. Now when the container class gets destructed by the user $container->close(), called before RSHUTDOWN ), i need to ensure that all resources allocated by the contained objects are released, otherwise nastiness can occur is the user tries to access the contained objects later in the script. to that end, ive written something like the following. i just wanted to know if it will cause any problems, since it accesses EG(regular_list) from a resource destructor. BTW the list destructor is destroy_container_resource . static int _kill_contained_objects(zend_rsrc_list *le,void *argument) { container_t *cont = (container_t *)argument; if (le->type == le_contained_object) { contained_t *field = (contained_t *)le->ptr; return (field->container == cont); } return 0; } static void kill_kids(apply_func_arg_t func, void *parent) { EGLS_FETCH(); zend_hash_apply_with_argument( &EG(regular_list), func, parent ); } static void destroy_container_resource(zend_rsrc_list_entry *rsrc) { container_t *cont = (container_t *)rsrc->ptr; kill_kids( (apply_func_t) _kill_contained_objects, cont ); container_free(cont); } clayton _____________________________________ "Fried Ice-Cream is a reality !" - George Clinton -- PHP Development Mailing List <http://www.php.net/> To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] To contact the list administrators, e-mail: [EMAIL PROTECTED]