Fixed multithreading mutation issue

This commit is contained in:
2025-12-31 03:43:44 +01:00
parent bc293bf7ec
commit 8d56883e7e
2 changed files with 16 additions and 6 deletions

View File

@@ -218,6 +218,7 @@ public class SearchdomainHelper(ILogger<SearchdomainHelper> logger, DatabaseHelp
{
searchdomain.ReconciliateOrInvalidateCacheForNewOrUpdatedEntity(preexistingEntity);
}
searchdomain.UpdateModelsInUse();
return preexistingEntity;
}
else
@@ -243,6 +244,7 @@ public class SearchdomainHelper(ILogger<SearchdomainHelper> logger, DatabaseHelp
};
entityCache.Add(entity);
searchdomain.ReconciliateOrInvalidateCacheForNewOrUpdatedEntity(entity);
searchdomain.UpdateModelsInUse();
return entity;
}
}

View File

@@ -216,6 +216,11 @@ public class Searchdomain
return queryEmbeddings;
}
public void UpdateModelsInUse()
{
modelsInUse = GetModels([.. entityCache]);
}
private static float EvaluateEntityAgainstQueryEmbeddings(Entity entity, Dictionary<string, float[]> queryEmbeddings)
{
List<(string, float)> datapointProbs = [];
@@ -237,6 +242,8 @@ public class Searchdomain
public static List<string> GetModels(List<Entity> entities)
{
List<string> result = [];
lock (entities)
{
foreach (Entity entity in entities)
{
foreach (Datapoint datapoint in entity.datapoints)
@@ -251,6 +258,7 @@ public class Searchdomain
}
}
}
}
return result;
}