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