!7 concept LoadedFunction { S code; transient O runnable; transient S methodName; S providedByModule; transient bool loading; void load() { if (runnable != null) ret; if (loading) ret; loading = true; assertIdentifier(code); runnable = loadFunctions_cached(code); methodName = code; } } cmodule LoadedFunctions > DynCRUD { start { thread "Load All Functions" { for (LoadedFunction f) f.load(); } } // API void loadFunction(S code) { uniq_sync(LoadedFunction, +code).load(); } }