static Cache> cachedNodeIndex2_cache = new Cache(f dwlw_fullNodeIndex_ci); static bool cachedNodeIndex2_first = true; static FileStatus cachedNodeIndex2_status; static MultiMap cachedNodeIndex2() { if (cachedNodeIndex2_first) { cachedNodeIndex2_first = false; onWebsChanged(f cachedNodeIndex2_clear); setAdd(postSoftwareMadeWeb_onNewWeb, f cachedNodeIndex2_onNewWeb); } FileStatus status = conceptsFileStatus(circlesEditorDBID()); if (neq(cachedNodeIndex2_status, status)) { cachedNodeIndex2_status = status; cachedNodeIndex2_cache.clear(); } ret cachedNodeIndex2_cache!; } static void cachedNodeIndex2_clear() { cachedNodeIndex2_cache.clear(); } // called by postSoftwareMadeWeb svoid cachedNodeIndex2_onNewWeb(Web web, O[] params) { lock cachedNodeIndex2_cache.lock; print("Incremental update"); ai_addWebToIndex(cachedNodeIndex2_cache!, web); false; // don't trigger full update }