HempBool hemp_meta_factory_cleaner( HempHash factories, HempPos position, HempSlot item ) { HempFactory factory = (HempFactory) hemp_val_ptr(item->value); hemp_debug_msg("cleaning %s factory\n", factory->name); hemp_factory_free(factory); return HEMP_TRUE; }
HempBool hemp_module_unload( HempModule module ) { if (! module->handle) return HEMP_TRUE; // TODO: add unloader if (dlclose(module->handle) == 0) { hemp_debug_init("closed '%s' module library\n", module->name); module->handle = NULL; return HEMP_TRUE; } else { hemp_module_failed(module, dlerror()); // TODO: should this be a fatal error or is it too late to care? hemp_debug_msg( "Failed to close '%s' module library: %s \n", module->name, module->error ); return HEMP_FALSE; } }