// named like this for historic reasons static new InheritableThreadLocal dm_currentModule_value; sO dm_current_generic() { ret getWeakRef(dm_currentModule_value!); } // prevent memory leak svoid cleanMeUp_dm_current_generic { dm_currentModule_value = new InheritableThreadLocal; }