Hey again, I'm trying to implement a load / unload module functionallity. When I delete the module in the __main__ dict the module's reference count is still > 1. I've been trying to find if I reference it anywhere else in my code but I can't find anything! When I did a check in vc++ debugger found something. When I run this code:
object obj = import(name.c_str()); *obj*'s *ob_refcnt* member is 2 when I check in the vc++ debugger. Shouldn't it be 1? After that line, I put it in the __main__ dict like: mMainNamespace[ name.c_str() ] = obj; The reference count shows 4, as expected. When I'm entering my unload() function when I want to remove the module I do like: void unload() { object t = mMainNamespace[ name.c_str() ]; // reference count in t is now 4 ? mMainNamespace[ name.c_str() ].del(); // I delete but it's not unloaded properly because it's still referenced somewhere .. } What does import() do? It must save some reference somewhere?
_______________________________________________ Cplusplus-sig mailing list Cplusplus-sig@python.org http://mail.python.org/mailman/listinfo/cplusplus-sig